diff --git a/ios/Firestack/FirestackAuth.h b/ios/Firestack/FirestackAuth.h index e9f217b..d6e6679 100644 --- a/ios/Firestack/FirestackAuth.h +++ b/ios/Firestack/FirestackAuth.h @@ -15,6 +15,7 @@ @interface FirestackAuth : RCTEventEmitter { FIRAuthStateDidChangeListenerHandle authListenerHandle; + Boolean listening; } @end diff --git a/ios/Firestack/FirestackAuth.m b/ios/Firestack/FirestackAuth.m index 3e14a69..0eba61c 100644 --- a/ios/Firestack/FirestackAuth.m +++ b/ios/Firestack/FirestackAuth.m @@ -130,6 +130,7 @@ @implementation FirestackAuth RCT_EXPORT_METHOD(listenForAuth) { + self->listening = true; self->authListenerHandle = [[FIRAuth auth] addAuthStateDidChangeListener:^(FIRAuth *_Nonnull auth, FIRUser *_Nullable user) { @@ -174,15 +175,11 @@ @implementation FirestackAuth { if (self->authListenerHandle != nil) { [[FIRAuth auth] removeAuthStateDidChangeListener:self->authListenerHandle]; + self->listening = false; callback(@[[NSNull null]]); } } -// Helper -- (Boolean) listeningForAuth { - return (self->authListenerHandle != nil); -} - RCT_EXPORT_METHOD(getCurrentUser:(RCTResponseSenderBlock)callback) { FIRUser *user = [FIRAuth auth].currentUser; @@ -496,7 +493,7 @@ - (void) sendJSEvent:(NSString *)title props:(NSDictionary *)props { @try { - if ([self listeningForAuth]) { + if (self->listening) { [self sendEventWithName:title body:props]; }