如何在不退出的情况下使用 Firebase API 创建新用户? [复制]
Posted
技术标签:
【中文标题】如何在不退出的情况下使用 Firebase API 创建新用户? [复制]【英文标题】:How create new user with Firebase API w/o signing out? [duplicate] 【发布时间】:2016-10-03 03:10:03 【问题描述】:用户登录。我拨打电话以使用
创建新用户firebase.auth().createUserWithEmailAndPassword(email, password)
它成功创建了新的 firebase 用户。在此调用之前firebase.auth().currentUser.uid
在调用之后给出不同的 uid。所以活跃的用户发生了变化。
有什么方法可以让活跃用户创建另一个用户并且仍然是活跃用户?
我知道一种解决方法:
将用户的电子邮件和密码保存到内存中,创建用户后重新登录回原始用户,但它需要保存密码,我不喜欢它。
firebase.auth().createUserWithEmailAndPassword(email, password)
.then(user =>
// login back to main account
firebase.auth().signInWithEmailAndPassword(current_user_email, current_user_password).then(original_user =>
const userRef = firebase.database().ref().child(`users/$user.uid`);
userRef.set(
...
【问题讨论】:
同一个问题:***.com/questions/37517208/… 【参考方案1】:要添加新的 Firebase 用户而不自动切换到该用户,您可以使用辅助 Firebase 实例来创建该用户。例如:
var firebaseConfig =
apiKey: "asdasdlkasjdlkadsj",
authDomain: "asdfg-12345.firebaseapp.com",
databaseURL: "https://asdfg-12345.firebaseio.com",
storageBucket: "asdfg-12345.appspot.com",
;
firebase.initializeApp(firebaseConfig); // Intialise "firebase"
var fbAdmin = firebase.initializeApp(firebaseConfig, "Secondary"); // Intialise "fbAdmin" as instance named "Secondary".
创建用户:
fbAdmin.auth().createUserWithEmailAndPassword(email, password)
.then(function(newUser)
// Success.
// Log out.
fbAdmin.auth().signOut()
.then(function ()
// Sign-out successful.
console.log('fbAdmin signed out.');
, function (error)
// An error happened.
console.log('Error siging out of fbAdmin.');
console.log(error);
);
, function (error)
// There's a problem here.
console.log(error.code);
console.log(error.message);
)
以上内容适用于纯 javascript。如果您使用auto configuration 来管理多个环境,那就有点棘手了。 (另见Reserved URLs)。
如果您使用的是 node.js,则可以使用 Firebase Admin Node.js SDK。有关要求和设置信息,请参阅installation instructions。
编辑:与this answer几乎相同。
【讨论】:
以上是关于如何在不退出的情况下使用 Firebase API 创建新用户? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
如何在不使用 Firebase 身份验证的情况下保护 Firebase 存储? (下一个)
在不使用数据库触发器的情况下,无法使用 firebase 云功能更新 firebase 数据库
如何在不使用 Firebase 控制台的情况下向 iOS 设备发送 Firebase 云消息通知?
如何在不使用验证码验证器的情况下实现 Firebase 电话验证系统?
SwiftUI 如何在不使用 List 的情况下从 @ObservedObject ViewModel 获取 Firebase 数据