- (void)signUpUser:(NSString *)username password:(NSString *)password email:(NSString *)email completion:(void (^)(FIRUser *user, NSError *error))completion { [[FIRAuth auth] createUserWithEmail:email password:password completion:^(FIRUser *user, NSError *error) { FIRDatabaseReference *ref = [[FIRDatabase database] reference]; FIRDatabaseReference *userRef = [[ref child:@"users"] child:username]; [userRef observeSingleEventOfType:FIRDataEventTypeValue withBlock:^(FIRDataSnapshot *snapshot) { if (snapshot && snapshot.value[@"uid"] == nil) { [userRef setValue:user.uid forKey:@"uid"]; } } withCancelBlock:^(NSError * _Nonnull error) { NSLog(@"%@", error.localizedDescription); }]; }]; }