Q:

New User vs Old Firebase Facebook Authentication

I'm using Firebase as my database. Is there a way to tell if a user has just signed up with Facebook authentication or already created an account and is logging in? I've read through the documentation with no luck.
- (IBAction)facebook:(id)sender {
    [MyUser authWithFacebookFromVC:self withCompletionBlock:^(FBSDKLoginManagerLoginResult *result, NSError *error) {
        if (!error && !result.isCancelled) {
            [MyUser authFireBaseWithFacebookAccessToken:[[FBSDKAccessToken currentAccessToken] tokenString] withCompletionBlock:^(NSError *error, FAuthData *authData) {
                if (error) {
                    [self showAlertWithTitle:@"Error" withDescription:error.localizedDescription];
                } else {
                    // ***************
                    // User has logged in/signed up. Can't distinguish which
                    // ***************
                    [self moveToMain];
                }
            }];
        } else {
            [self showAlertWithTitle:@"Error" withDescription:error.localizedDescription];
        }
    }];
}

// In MyUser.m

+ (void)authWithFacebookFromVC:(UIViewController *)vc withCompletionBlock:(void (^)(FBSDKLoginManagerLoginResult *result, NSError *error))completion {
    FBSDKLoginManager *facebookLogin = [[FBSDKLoginManager alloc] init];
    [facebookLogin logInWithReadPermissions:@[@"email"] fromViewController:vc handler:completion];
}

#pragma mark - Facebook

+ (void)authFireBaseWithFacebookAccessToken:(NSString *)accessToken withCompletionBlock:(void (^)(NSError *error, FAuthData *authData))completion {
    Firebase *ref = [[Firebase alloc] initWithUrl:kFireBaseURL];
    [ref authWithOAuthProvider:@"facebook" token:accessToken withCompletionBlock:completion];
}

A:

When you use Firebase Authentication with an OAuth provider there is no difference between "signing up" or "signing on". In OAuth that is not really a thing: either the user allowed the application access to the user data, or it didn't.
More likely you are trying to detect if this is the first time the user accesses the application. That is much easier to handle on the application level itself. Most developers store information about their users in their Firebase Database.
You can use this fact to detect if the user has used your application before, by checking if you already have information about that user in your database:
Firebase *ref = [[Firebase alloc] initWithUrl:@"https://<YOUR-FIREBASE-APP>.firebaseio.com"];
[ref observeAuthEventWithBlock:^(FAuthData *authData) {
  if (authData) {
    // user authenticated
    NSLog(@"%@", authData);

    // Create a child path with a key set to the uid underneath the "users" node
    // This creates a URL path like the following:
    //  - https://<YOUR-FIREBASE-APP>.firebaseio.com/users/<uid>
    Firebase *userRef = [[ref childByAppendingPath:@"users"]
                         childByAppendingPath:authData.uid];

    [userRef observeSingleEventOfType:FEventTypeValue withBlock:^(FDataSnapshot *snapshot) {
      if (snapshot.value == [NSNull null]) {
        // Create a new user dictionary accessing the user's info
        // provided by the authData parameter
        NSDictionary *newUser = @{
                                  @"provider": authData.provider,
                                  @"displayName": authData.providerData[@"displayName"]
        };
        [userRef setValue:newUser]
      }
    }];
  }];
}];

This code is modified from the page I linked above.

