Linh Nguyen
Linh Nguyen

Reputation: 3880

Firebase python admin sdk isNewUser ()

Hi i'm currently using firebase admin sdk on my django server to handle my app. I would like to check if user a user first time login on the server side.I would like to use firebase isNewUser() on the django server but in the firebase admin sdk docs i don't see any information related to that.

My server side to get user from token(send from app):

from utils.firebase_utils import auth

class FirebaseAuthentication(authentication.BaseAuthentication):
    def authenticate(self, request):
        token = request.META['HTTP_AUTHORIZATION']

    if not token: 
        return None 

    try:
        decoded_token = auth.verify_id_token(token)
        uid = decoded_token['uid']
        user = auth.get_user(uid, app=None)
       # need to check if user first time log in too
    except Exception as e:
        raise exceptions.AuthenticationFailed('No such user') 

    return (user, None) # authentication successful

How can i check if a user first time login?

Upvotes: 1

Views: 257

Answers (1)

Frank van Puffelen
Frank van Puffelen

Reputation: 598765

There indeed is no isNewUser method in the Admin SDK for Python.

A workaround is to compare the creation_timestamp and last_sign_in_timestamp properties of the UserMetadata object. If the two are close (within 1 second of each other), it is a new user. This is in fact how the documentation said to check for "newness" of a user record before the isNewUser method was introduced, which happened because there was a granularity difference in the two timestamps for a short while.

Upvotes: 1

Related Questions