【问题标题】:Firestore Admin Create an anonymous userFirestore 管理员创建匿名用户
【发布时间】:2018-12-24 00:12:48
【问题描述】:

尝试使用管理员创建匿名用户(我使用云功能),但我不知道是否可能:

admin.auth().createUser({
  email: userEmail,
  emailVerified: false,
  password: userPassword,
  disabled: false, 
  anonymous: true
})
.then(function(userRecord) {
    console.log("util = " + util.inspect(userRecord))
    console.log("user recotd = " + userRecord.anonymous)
})
.catch(function(error) {
    console.error("Error creating new user:", error);
});

在管理部分的文档中没有“匿名用户”部分。

https://firebase.google.com/docs/auth/admin/

知道是否可能吗?

谢谢!

【问题讨论】:

  • 在下面回答。但是我很难在这里考虑用例,所以感觉就像XY problem。您能解释一下您通过创建一个专门的匿名用户帐户要完成的工作吗?
  • @FrankvanPuffelen 嘿,Puf,我找到了这个为我的用户案例提供服务的线程。在我的特殊情况下,我想邀请用户但立即修改他们的个人资料,添加旅行(这是一个旅行社应用程序),如果我当场创建用户,我会提前知道 UID,这让我可以做更简单的安全规则.一旦用户最终注册,我将数据复制过来。否则我需要推迟对用户个人资料的任何工作,直到他们实际注册,这是不好的用户体验。

标签: node.js firebase google-cloud-firestore firebase-admin


【解决方案1】:

要使用 Firebase Admin SDK 创建匿名 Firebase 用户帐户,请确保在 Firebase console > Your Project > Authentication > Sign-in method 中启用 Anonymous 登录提供程序

在您的代码中,在您拥有initialized the SDK 之后,调用createUser(properties: CreateRequest): Promise 而不使用任何参数。

admin.auth().createUser({})
  .then(function(userRecord) {
    console.log('Successfully created new anonymous user:', userRecord.uid);
  })
  .catch(function(error) {
    console.log('Error creating new anonymous user:', error);
  });

如果您选中Firebase console > Your Project > Authentication > Users,则会列出新的匿名用户。

【讨论】:

  • 这似乎不再是这种情况。 admin.auth().createUser({}) 现在使用 empty(您可以在 Firebase 控制台中仅看到 -)提供程序创建用户,而不是匿名用户。
【解决方案2】:

当您通过 Firebase Admin SDK 创建用户时,它只是一个 Firebase 身份验证用户配置文件。它不依赖于任何特定的提供者。

无法通过 Firebase Admin SDK 专门创建匿名用户帐户。

【讨论】:

  • 是的,您可以,您只需添加 disabled: false,并且没有其他参数。
猜你喜欢
  • 2019-08-11
  • 2019-05-17
  • 1970-01-01
  • 1970-01-01
  • 2014-03-12
  • 2016-05-09
  • 1970-01-01
  • 2019-08-19
  • 1970-01-01
相关资源
最近更新 更多