flutter Firebase Auth -是否有方法为新用户预生成UID?

g52tjvyc  于 2023-04-22  发布在  Flutter
关注(0)|答案(2)|浏览(123)

我有一个Flutter应用程序,用户应该能够加入群组并邀请其他人加入群组。
我们通过将每个用户的ID(来自Firebase Auth,但在单独的用户集合中也使用相同的ID)添加到组中,以及用户是否正在等待或已接受邀请来存储此组成员身份。
我希望能够通过向当前未使用该应用程序的人发送电子邮件来邀请他们,并且我们希望跟踪该待定邀请,以便他们可以在登录时接受该邀请。
要做到这一点,我假设我需要为他们预生成Auth UID。有没有一种方法可以获得预生成的Auth UID,然后当用户注册时(假设我传入该ID),在他们实际注册时使用该UID?
如果没有,还有其他方法可以为还不存在的用户存储潜在的会员资格吗?

mw3dktmi

mw3dktmi1#

指定用户ID的唯一方法是在后端使用Firebase Admin SDK创建用户帐户(在前端使用Web和移动的SDK时,这将不起作用)。从文档中:
默认情况下,Firebase身份验证将为新用户生成一个随机uid。如果您想为新用户指定自己的uid,则可以将其作为传递给用户创建方法的参数包括在内:

getAuth()
  .createUser({
    uid: 'some-uid',
    email: 'user@example.com',
    phoneNumber: '+11234567890',
  })
  .then((userRecord) => {
    // See the UserRecord reference doc for the contents of userRecord.
    console.log('Successfully created new user:', userRecord.uid);
  })
  .catch((error) => {
    console.log('Error creating new user:', error);
  });

你当然可以安排你的后端为用户创建一个新的帐户,因为他们点击到你的应用程序,但它不会像在应用程序启动后创建用户那么方便。
这可能是也可能不是你想要解决手头问题的实际做法,但这是一种选择。

rqqzpn5f

rqqzpn5f2#

有没有办法为新用户预生成UID?
不可以,鉴权成功后会生成UID,不能提前生成UID。
一个解决方案可能是向您的用户发送包含身份验证代码的电子邮件。所有这些代码都应该存在于您的数据库中,沿着您向其发送邀请的电子邮件和时间戳。通过这种方式,您将能够跟踪您的用户并了解他们接受您的邀请所花的时间。

相关问题