有没有办法知道用户单击了验证链接?

man*_*dos 4 firebase-authentication

这是我用来发送验证电子邮件的代码(摘自官方文档

var user = firebase.auth().currentUser;

user.sendEmailVerification().then(function() {
  // Email sent.
}).catch(function(error) {
  // An error happened.
});
Run Code Online (Sandbox Code Playgroud)

User对象具有emailVerified属性。用户单击邮件中的链接时,它不会更改。它仅在重新登录时更新。应用程序可以通过某种方式知道用户已成功验证其地址吗?

Fra*_*len 5

在这里放火

当用户单击验证链接时,不会触发任何客户端回调。

我们已经看到一个功能请求,当用户验证其电子邮件地址时会触发Cloud Functions,但是没有关于是否/何时发送更新。(另请参见:Firebase的云功能-已验证对电子邮件的操作

我现在能想到的最好的方法是User.reload()偶尔调用以获取更新的属性。

  • 小小的交易破坏者,这些加起来。为什么不添加这个功能,firebase/firestore 的重点是反应性。刚刚为自己发现了这一点。 (3认同)

boj*_*eil 5

您可以在发送电子邮件验证时添加 continueUrl 以重定向回您的应用程序: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.
  });
Run Code Online (Sandbox Code Playgroud)

验证后将显示继续按钮。您可以使用它返回到应用程序或某个页面,您可以在其中通过实时数据库通知原始页面进行验证。