Firebase 在创建新用户时注销当前用户
Posted
技术标签:
【中文标题】Firebase 在创建新用户时注销当前用户【英文标题】:Firebase logs out current user when creating a new one 【发布时间】:2017-04-30 11:12:11 【问题描述】:我正在创建一个管理员用户可以创建新用户的 iPhone 应用,但正如 Firebase 文档所述,“如果创建了新帐户,则用户会自动登录”,所以我'正在寻找一种方法来避免登录到该新创建的用户。
在不使用新的 Firebase Admin SDK(即仅网络 AFAIK)的情况下,我有什么办法可以避免这种情况?
【问题讨论】:
Firebase Admin SDK 用于在 node.js 服务器上运行(这并不意味着它仅适用于 Web)。但是,如果您想要仅客户端的方法,它确实行不通。您也许可以尝试类似的方法:***.com/questions/37517208/… 【参考方案1】:您可以通过多种方式解决此问题:
选项 1:将管理员用户的凭据安全地保存在您的设备上。然后,当用户创建新用户时,使用管理员凭据登录。这会将您注销并立即重新登录。
选项 2:使用 admin sdk 在 web 端创建一个带有 rest API 调用的用户。
【讨论】:
谢谢!我认为在设备上保存凭据,即使是在安全的情况下也有点危险,而且我没有网络端,因为我使用 Firebase 作为我的后端,但这两个选项都可以。 请勾选正确答案。提前谢谢你【参考方案2】:我得到了this javascript smart workaround 为 ios 工作。完美运行:
NSString *plistPath = [[NSBundle mainBundle] pathForResource:@"GoogleService-Info" ofType:@"plist"];
FIROptions *secondaryAppOptions = [[FIROptions alloc] initWithContentsOfFile:plistPath];
[FIRApp configureWithName:@"Secondary" options:secondaryAppOptions];
FIRApp *secondaryApp = [FIRApp appNamed:@"Secondary"];
FIRAuth *secondaryAppAuth = [FIRAuth authWithApp:secondaryApp];
[secondaryAppAuth createUserWithEmail:user.email
password:user.password
completion:^(FIRUser * _Nullable user, NSError * _Nullable error)
[secondaryAppAuth signOut:nil];
];
【讨论】:
以上是关于Firebase 在创建新用户时注销当前用户的主要内容,如果未能解决你的问题,请参考以下文章
Cloud Functions for Firebase - 创建新用户时写入数据库
NoSuchMethodError:创建新用户时尝试调用非函数,如 null: 'dart.global.firebase.auth'