【发布时间】:2021-01-10 18:03:55
【问题描述】:
我已返回一个承诺“db”以访问该集合。该集合尚不存在,因为当我允许用户注册时,Firebase 应该会自动创建该集合。然后我通过传入一个 id 创建了一个文档,因此当我保存到该文档时,它将为该文档创建一个 autoid。
然后我设置了一个名为 email 的属性,然后将 email 值传递给它。现在文档将具有与用户相同的 id。
问题是它没有创建一个新集合,有什么想法吗?
function signup(){
var userEmail = document.getElementById("email_field").value;
var userPass = document.getElementById("password_field").value;
firebase.auth().createUserWithEmailAndPassword(userEmail, userPass)(cred => {
return db.collection('users').doc(cred.user.uid).set({
email: document.getElementById("email_field").value
}).then
})
.catch(function(error) {
// Handle Errors here.
var errorCode = error.code;
var errorMessage = error.message;
window.alert("Error : " + errorMessage);
// ...
});
}
这是我在 Cloud Firebase 规则中设置并允许创建文档的内容:
service cloud.firestore {
match /databases/{database}/documents {
match /{document=**} {
allow read, write;
}
}
}
【问题讨论】:
-
您的代码显然没有做任何有错误的事情。你有什么代码来检查和报告错误?我们只能看到两个变量的赋值。另外,你有一个悬空的
then,它什么都不做——你需要吗? -
嗨,道格,感谢您的评论。我删除了悬空的“then”并添加了一种检查错误的方法。我已经用这些更改更新了上面的代码。
标签: javascript database firebase google-cloud-firestore