我正在使用带有Firebase的flutter管理我的用户,在此链接中,它说您可以在用户创建期间指定uid:https://firebase.google.com/docs/auth/admin/manage-users#create_a_user
我的问题:dart / flutter等效于什么?我知道firebase会自动为您生成一个,但是在我的用例中,我需要能够指定我的。
对于扑朔迷离,我只知道 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);
});
答案 0 :(得分:0)
在任何平台(Android,iOS,Web,Flutter等)上的任何Firebase客户端SDK均没有此类选项。
Firebase Admin是服务器SDK,并且相信调用其方法的代码具有特权,并且可以在安全和受信任的环境中运行。认为这对于发明UID是安全的。客户端SDK在用户设备上运行,这被认为是不可信的,可能会受到威胁。在这种情况下,Firebase Auth产品必须为用户提供适当的UID。
答案 1 :(得分:0)
您可以通过实施自定义提供程序来完全控制Firebase身份验证用户的创建。但是,您可能会想到,这是一项敏感的操作,因此代码要求您具有对Firebase项目的完全管理访问权限。因此,您不能在Flutter应用中运行这种类型的操作,而必须在受信任的环境中运行它,例如开发机器,您控制的服务器或Cloud Functions。
通常这意味着:
答案 2 :(得分:0)
该选项仅对 Admin SDK 存在,即,由于Admin SDK在“ a secure server environment”中运行,因此您根本无法指定uid
客户端。
您需要使用海关uid
的服务器端创建用户,然后通过提供例如来再次登录这些帐户的客户端。自定义令牌,电话等。