react-native-firestack
react-native-firestack copied to clipboard
App crashing on device but ok on simulators
Really need someone's help to figure this one out. Our app has started crashing on device, but during dev all is good on sims.
Narrowed it down to the listenForAuth method in XCode where the exception is being thrown - specifically it's the "userTokenError" event.
Firstly how should we be protecting against this crash scenario ? Im assuming we need to call reauthenticateWithCredentialForProvider() ? If yes, not sure where to put that call, in relation to the "listenForAuth" listener which we invoke on app startup (in an action).
Appreciate anyone's help/guidance on this, thanks.
RCT_EXPORT_METHOD(listenForAuth)
{
self->listening = true;
self->authListenerHandle =
[[FIRAuth auth] addAuthStateDidChangeListener:^(FIRAuth *_Nonnull auth,
FIRUser *_Nullable user) {
if (user != nil) {
// User is signed in.
[self userPropsFromFIRUserWithToken:user
andCallback:^(NSDictionary *userProps, NSError * error) {
if (error != nil) {
[self
sendJSEvent:AUTH_CHANGED_EVENT
props: @{
**crashing here ====>** @"eventName": @"userTokenError",
@"authenticated": @((BOOL)false),
@"errorMessage": [error localizedFailureReason]
}];
} else {
[self
sendJSEvent:AUTH_CHANGED_EVENT
props: @{
@"eventName": @"user",
@"authenticated": @((BOOL)true),
@"user": userProps
}];
}
}];
any ideas on how to manage this ? im assuming token needs to be refreshed?? what is the order of precedence re auth - when should i be calling 'reauthenticateWithCredentialForProvider' ?
Ari are you there ?! This is a big issue for us as app is due to go into beta at a number of schools tomorrow. Is a showstopper. Can you please help ?
Hey @auser Just curious if you are still maintaining this lib? Appreciate your efforts !
I've run into this issue as well.
I've worked around it by removing the call to [error localizedFailureReason].
if (user != nil) {
// User is signed in.
[self userPropsFromFIRUserWithToken:user
andCallback:^(NSDictionary *userProps, NSError * error) {
if (error != nil) {
[self
sendJSEvent:AUTH_CHANGED_EVENT
props: @{
@"eventName": @"userTokenError",
@"authenticated": @((BOOL)false),
@"errorMessage": @"Mysterious Error"
}];
I also ran into this problem, and submitted a PR https://github.com/fullstackreact/react-native-firestack/pull/340
This has been pretty hard to track down, as I couldn't reproduce the problem.
@ajonno @jeveloper @kelvinpompey - see my response in PR #340 - I know some of you are already doing so though now.