react-native-firestack icon indicating copy to clipboard operation
react-native-firestack copied to clipboard

App crashing on device but ok on simulators

Open ajonno opened this issue 7 years ago • 7 comments

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
                                                      }];
                                        }
                                    }];

ajonno avatar Mar 23 '17 22:03 ajonno

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' ?

ajonno avatar Mar 25 '17 11:03 ajonno

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 ?

ajonno avatar Mar 27 '17 13:03 ajonno

Hey @auser Just curious if you are still maintaining this lib? Appreciate your efforts !

jeveloper avatar Mar 30 '17 17:03 jeveloper

I've run into this issue as well.

kelvinpompey avatar Apr 10 '17 13:04 kelvinpompey

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"
                                                  }];

kelvinpompey avatar Apr 10 '17 15:04 kelvinpompey

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.

KrauseFx avatar May 17 '17 03:05 KrauseFx

@ajonno @jeveloper @kelvinpompey - see my response in PR #340 - I know some of you are already doing so though now.

Salakar avatar May 27 '17 11:05 Salakar