그래서 내가 중포 기지를 사용하여 새로 온 이메일/암호 및 iOS 앱 개발과 중포 기지 간단한 로그인을 사용하여 실행 가져올 수 없습니다 일부를 들어이 guide.이 완료 블록
다음과 같은 간단한 로그인을 설정하려고 이유는 완료 블록 코드가 실행되지 않고 사용자 생성이 제대로되었는지 확인하기 위해 사용하는 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 protected]" 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;
}
이 문제에 대한 도움을 주시면 감사하겠습니다! 나는 왜 완성 블록이 호출되지 않을지에 관해서 머리를 긁어왔다.
감사합니다, NuttGuy
나는 iOS 전문가가 아니기 때문에 나를 괴롭히지 만 goodFirebaseCall이 설정되기 전에 createUserWithEmail 메소드가 완료되기를 기다릴 필요가 없다. 즉, 완료 블록은'return goodFireabaseCall' 전에 실행되지 않으므로 true로 설정되지 않습니다. – Kato
@Kato Firebase가 createUserWithEmail 메소드와 같은 동작을 대기열에 넣는 방법에 대해 읽은 후에 비슷한 생각을했습니다. 그렇다면 목표 C에 대한 지식이 부족하여 createUserWithEmail 메서드가 완료 될 때까지 기다려야 goodFirebaseCall이 실제로 설정됩니다. – NuttGuy