Firebase 使用自行指定的uid创建用户

Firebase 使用自行指定的uid创建用户,firebase,flutter,dart,firebase-authentication,Firebase,Flutter,Dart,Firebase Authentication,我正在使用Flatter和firebase来管理我的用户,在这个链接中,它说您可以在用户创建期间指定uid: 我的问题:飞镖/颤振的等价物是什么?我知道firebase会自动为您生成一个,但在我的用例中,我需要能够指定我的 对于flatter,我只知道createUserWithEmailAndPassword方法,但它没有“uid”参数 FirebaseAuth.instance.createUserWithEmailAndPassword(email: null, password: nul

我正在使用Flatter和firebase来管理我的用户,在这个链接中,它说您可以在用户创建期间指定uid:

我的问题:飞镖/颤振的等价物是什么?我知道firebase会自动为您生成一个,但在我的用例中,我需要能够指定我的

对于flatter,我只知道createUserWithEmailAndPassword方法,但它没有“uid”参数

FirebaseAuth.instance.createUserWithEmailAndPassword(email: null, password: null)
然而,在上面的链接中,他们提供了一个使用此类方法的示例(node.js

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

任何平台(Android、iOS、web、Flatter等)上的Firebase客户端SDK都没有此类选项


Firebase Admin是一个服务器SDK,它相信调用其方法的代码是有权限的,并且运行在安全可信的环境中。这被认为是安全的发明UID。客户端SDK在用户设备上运行,这被认为是不可信的,可能会受到危害。在这种情况下,Firebase Auth产品必须为用户提供适当的UID。

您可以通过实现自定义提供程序来完全控制Firebase身份验证用户的创建。但正如您可能想象的那样,这是一个敏感的操作,因此代码要求您拥有对Firebase项目的完全管理权限。因此,您不能在Flatter应用程序中运行此类操作,但必须在受信任的环境中运行,例如您的开发机器、您控制的服务器或云功能

这通常意味着:

  • 您将在Flatter应用程序中收集用户的凭据
  • 将它们(安全地)发送到服务器上的自定义端点
  • 并验证用户凭据是否正确
  • 并使用
  • 然后安全地将其发送回Flatter应用程序

  • 我只是想了解一下,客户端SDK在登录并在第5步返回令牌后,是否仍能正常管理客户端令牌的刷新?对于自定义提供商,您必须自己处理令牌刷新,由于SDK无法知道如何刷新您创建的令牌。我遵循了您的步骤,首先感谢,它帮助我解决了使用其他服务器提供给我的UID的问题,并让我的规则检查“.if request.auth!=null”。也许我的问题不清楚,我想知道从firebase接收到的令牌(现在在Flitter中使用)是否会在应用程序中自动刷新,就像从客户端使用普通firebase身份验证时一样。我现在正在使用signInWithCustomToken(token_response)登录。“首先感谢”->Upvows,我必须与团队进行双重检查,而我之前实际上是错的。事实证明,当您在客户端上调用
    signInWithCustomToken(token)
    时,SDK会每小时自动刷新ID令牌。