用户登录。我打电话用
创建新用户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({
...
答案 0 :(得分: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完全相同。