![](/img/trans.png)
[英]How to save firebase storage downloadURL to firestore collection?
[英]firebase/firestore save user to collection
我正在尝试将用户保存到我的 Firestore 中的集合中。 似乎正在创建用户,我可以在“ Authentication
”选项卡中看到它们,但是它们没有保存到我的 Firestore 中的集合中。 我的控制台内似乎也没有任何错误。 我已经为此苦苦挣扎了几个小时,我什至不知道如何调试它。
export const authMethods = {
signup: (email, password, setErrors, setToken) => {
firebase
.auth()
.createUserWithEmailAndPassword(email, password)
// make res asynchronous so that we can make grab the token before saving it.
.then(async res => {
const token = await Object.entries(res.user)[5][1].b
// set token to localStorage
await localStorage.setItem('token', token)
// grab token from local storage and set to state.
setToken(window.localStorage.token)
const userUid = firebase.auth().currentUser.uid
const db = firebase.firestore()
db.collection('/users')
.doc(userUid)
.set({
email,
password,
})
console.log(res)
})
.catch(err => {
setErrors(prev => [...prev, err.message])
})
},
....
}
有任何想法吗?
从localStorage.setItem
中删除await
它不是异步 function。
您还需要将 await 添加到db.collection("/users").doc(userUid)
这是您可以做的另一种方法。 让云 function 为您处理。
每当创建用户时,都会触发以下 function。
export const onUserCreate = functions.auth
.user()
.onCreate(async (user, context) => {
await admin.firestore().collection("users").doc(user.uid).set({
id: user.uid,
emailAddress: user.email,
verified: user.emailVerified,
});
});
如果您需要有关云功能的更多信息,请阅读以下内容。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.