Is there a way to know that a user clicked on the verification link?

后端 未结 3 1782
余生分开走
余生分开走 2021-02-09 20:55

Here\'s the code I\'m using to send a verification email (taken from the official docs)

var user = firebase.auth().currentUser;

user.sendEmailVerification().the         


        
相关标签:
3条回答
  • 2021-02-09 21:16

    You can make sure whether the user clicked on the verification link by trying to get the user id for the current user from Firebase, when it's empty, then this means that the user clicked on verification link and a new user has been created.

    FirebaseAuth mAuth = FirebaseAuth.getInstance();
    if(!mAuth.getCurrentUser().getUid().equals("")){
    // the user clicked on the verification link.
    // a new user has been created.
    }
    else{
    // the user didn't click on the verification link.
    // No user created.
    }
    
    0 讨论(0)
  • 2021-02-09 21:23

    You can add a continueUrl when sending an email verification to redirect back to your app: https://firebase.google.com/docs/auth/web/passing-state-in-email-actions

    var actionCodeSettings = {
      url: 'https://www.example.com/?email=' + 
           firebase.auth().currentUser.email
    };
    firebase.auth().currentUser.sendEmailVerification(actionCodeSettings)
      .then(function() {
        // Verification email sent.
      });
    

    This will show a continue button after verification. You can use it to go back to the app or to some page where you can notify the original page via real time database of the verification.

    0 讨论(0)
  • 2021-02-09 21:35

    firebaser here

    There is no client-side callback that triggers when the user clicks the verification link.

    We've seen a feature request to trigger Cloud Functions when a user verifies their email address, but no updates on whether/when that will come. (Also see: Cloud Functions for Firebase - action on email verified)

    The best I can think of now is to call User.reload() occasionally to get the updated properties.

    0 讨论(0)
提交回复
热议问题