当前位置: 首页 > 面试题库 >

firebase管理员SDK创建用户并发送验证电子邮件

施鸿
2023-03-14
问题内容

使用Firebase管理员SDK创建用户后,如何发送验证电子邮件?我正在尝试合并createUser functionsendEmailVerification function 有人可以提示或回答吗?谢谢

更新:

用户创建是由已经在应用中登录的管理员用户完成的,因此该管理员用户只是在仪表板上创建用户。这与注册方法完全不同。

更新2:

我尝试遵循bojeil的回答,但是我仍然坚持用户使用自定义令牌登录的步骤。它与我当前的管理员用户会话发生冲突,管理员用户被踢出,而是新用户登录,即使我退出了新用户,管理员用户仍然退出,需要登录才能重新登录该应用程序。

这是我获得自定义令牌后在应用内的代码:

$html" target="_blank">http.post('/.custom-token', {uid: $scope.data.data.uid})
        .then(function (response) {
            console.log("custom token here:", response.data.token);
            firebase.auth().signInWithCustomToken(response.data.token)
                .then(function (firebaseUser) {
                    firebaseUser.sendEmailVerification();
                    firebase.auth().signOut().then(function() {
                        // Sign-out successful.
                        console.log("signed out success");
                    }, function(error) {
                        // An error happened.
                    });
                })

                .catch(function(error) {
                    // Handle Errors here.
                    var errorCode = error.code;
                    var errorMessage = error.message;
                    // ...
                });

        });

因此,我得到了令牌,登录了新用户,发送了电子邮件验证链接,然后注销了新用户。但是执行所有这些操作的管理员用户也会被注销。我在这里想念什么?


问题答案:

好的,这是您可以做的,但是您可能会遇到配额限制:

  • 包括firebase-admin模块。
  • 包括firebase客户端模块。
  • 使用admin SDK,通过createUser创建新用户
  • 当该承诺解决时,获取创建的用户的uid。
  • 使用admin sdk,为该uid创建自定义令牌。
  • 使用客户端sdk,使用该自定义标记使用signInWithCustom标记。
  • 在该过程中返回了用户,请调用user.sendEmailVerification()
  • 从客户端SDK中注销该用户。


 类似资料:
  • 是否可以在创建 Firebase 用户之前发送验证电子邮件并验证电子邮件?在我的代码中,我只能在从 Firebase 调用使用电子邮件和密码创建用户方法后发送电子邮件验证。即使我没有验证电子邮件,我仍然可以在 Firebase 控制台中看到该电子邮件的条目。

  • 我正在创建一个将提供通知的Android应用程序。用户可以使用电话号码或电子邮件帐户选择加入。 我只需要验证用户输入的电子邮件,我不想创建Firebase帐户 Firebase 有一个 但这需要创建一个帐户。 换句话说,我只希望电子邮件验证与电话验证相同,Firebase只会向您发送代码或验证链接。 有没有一种方法可以在不创建帐户的情况下利用Firebase电子邮件验证?

  • 我正在创建一个网站,在那里企业可以免费向他们的客户/用户提供我的服务。对于企业添加用户(在他们的企业帐户下),企业登录并输入他们的一个客户/用户电子邮件。然后,我将客户机/用户电子邮件发送给firebase函数,并以编程方式创建一个帐户。 我想给这个新用户发送一封邮件,上面写着“帐户创建:重置密码”等内容,我可以在浏览器上使用sendPasswordResetEmail来完成,但这个功能在Fire

  • 问题内容: 我检查了用户是否通过电子邮件验证。但是,无论我发送并确认了多少电子邮件,验证状态仍为。检查时我做错什么了吗? 问题答案: 我如何实现此功能的方法是添加一个 带有时间间隔的,它将检查用户是否已通过验证,然后在完成验证后终止计时器。 检查您当前用户状态的功能:

  • 我检查了用户是否通过电子邮件进行验证。但是,无论我发送并确认了多少封电子邮件,验证状态仍然是。我在检查时是否做错了什么?

  • 我正在提示我的应用程序用户提供电子邮件凭据。 在用户插入电子邮件并通过后,我想验证该帐户。 我正在使用javax。邮政有没有办法验证帐户?只确保凭据确实有效——否则我想显示一个无效用户并传递消息。 也许是某种表演方式: 并在不发送任何内容的情况下检查身份验证异常。