0

だから、私は Firebase と iOS アプリ開発を初めて使用し、このガイドに従ってシンプル ログインをセットアップしようとしています。

何らかの理由で、完了ブロック コードが実行されることはなく、ユーザーの作成が正常に行われたかどうかを確認するために使用している bool は常に NO です。デバッガーを使用してコードをステップスルーしようとしましたが、完了ブロックに到達すると、基本的にメソッドの最後にジャンプするだけで、非常に奇妙な動作になりました。これが私のコードです:

BOOL goodFirebaseCall = false;

- (void)createUser:(NSString*)userName andPasswordis:(NSString*)password {

  goodFirebaseCall = [self createFirebaseUser:userName andPasswordis:password];

  if(goodFirebaseCall==true) //goodFirebaseCall is always NO
  {
      NSLog(@"Logged in, now adding the user to Firebase.");
      // Create a reference to a Firebase location
      Firebase* fUsers = [[Firebase alloc]    initWithUrl:@"https://xxxx.firebaseio.com/users"];

      Firebase* fNewUser = [fUsers childByAppendingPath:userName]; //childByAutoId];
      [fNewUser setValue:@{@"name":userName}];
   }
   else
   {
       NSLog(@"Error, something went wrong with user creation");
   }
}

-(BOOL)createFirebaseUser:(NSString*)email andPasswordis:(NSString*)password
{
   goodFirebaseCall = false;
   Firebase* myRef = [[Firebase alloc] initWithUrl:@"https://xxxx.firebaseio.com/"];
   FirebaseSimpleLogin* authClient = [[FirebaseSimpleLogin alloc] initWithRef:myRef];
   [authClient createUserWithEmail:@"email@domain.com" password:@"very secret"
             andCompletionBlock:^(NSError* error, FAUser* user) {
                 if (error != nil) {
                     // There was an error creating the account
                     NSLog(@"%@", error);
                 } else {
                     // We created a new user account
                     goodFirebaseCall = true;
                     NSLog(@"User Created!");
                 }
             }];
    return goodFirebaseCall;
}

この問題に関するヘルプをいただければ幸いです。完了ブロックが呼び出されない理由について頭を悩ませてきました。

ありがとう、ナットガイ

4

1 に答える 1