如何使用 Firebase 管理 SDK 链接电子邮件/密码登录方法?

问题描述 投票:0回答:2

我正在尝试使用 firebase admin SDK 来链接电子邮件/密码登录方法。

根据 firebase 文档,我们可以将用户链接到特定提供商 https://firebase.google.com/docs/reference/admin/node/firebase-admin.auth.updaterequest.md#updaterequestprovidertolink


基于我正在使用的:

await admin
           .auth()
           .updateUser(user.uid, {
                providerToLink: {
                    uid: user.email,
                    email: user.email,
                    displayName: user.displayName,
                    providerId: 'password',
                },
            })
            .catch((error: any) => {
                console.error(`${error}`);
            });

它应该将电子邮件/密码登录方法链接到特定用户,但它不会返回错误

  • 代码 =
    auth/invalid-provider-id
  • 消息 =
    The providerId must be a valid supported provider identifier string.

当providerId等于
facebook.com
google.com

时,它会按预期工作

问题

我应该使用另一个提供商 ID 来链接电子邮件/密码登录方法吗?

我应该使用另一种方法来链接电子邮件/密码登录方法吗?


节点版本:12

firebase-管理:9.12.0

node.js firebase firebase-authentication firebase-admin
2个回答
1
投票

您需要将providerId设置为“电子邮件”并提供密码。

  await admin.auth().updateUser(user.uid, {
    password: "password",
    providerToLink: {
      email: "[email protected]",
      uid: "[email protected]",
      providerId: 'email',
    },
  })

0
投票

您可以将电子邮件和密码提供商链接到匿名用户,使用管理 SDK 更新用户

admin.auth().updateUser("xxxxx", {
  email: "[email protected]",
  password: "abc123"
});

运行此代码后,您将能够使用该凭据登录。

© www.soinside.com 2019 - 2024. All rights reserved.