我需要帮助您了解如何创建数据库系统,以便每个用户都有自己的数据,我想确保在我从站点发送数据时,该数据以该顺序(集合名称)/(创建该数据的用户的uid)/(文件名由日期创建的日期#this我已经完成,我只需要了解保存语法的语法#)/最终数据即可。
有人可以通过写他将在js和数据库规则中写的内容来完成我上面写的内容来帮助我吗?
我搜索了许多教程,但是我看到的例子很少,我不能总是理解简单视频中的所有内容。
db.collection("preferenze").doc(salvataggioData).set({
animale: animale
}).then(function() {
console.log("Preferenza Salvata Con Successo")
}).catch(function(error) {
console.log(error.message)
});
setTimeout(function() {
location.reload()
}, 500);
答案 0 :(得分:1)
如果要使用登录用户的uid创建文档,然后将数据作为字段传递,则必须这样做:
...
auth.onAuthStateChanged(function(user) {
if (user) {
userUid = user.uid;
console.log(userUid);
console.log("Loggato")
costruzioneHtml(true);
this.user = user;
} else {
console.log("Non Loggato")
costruzioneHtml(false);
userUid = "";
}
});
...
function invioPreferenza() {
idDocumento = calcoloData();
animale = document.getElementById("txtAnimale").value;
db.collection("preferenze").doc(user.uid).set({
animale: animale,
name: user.displayName,
email: user.email,
...
}).then(function() {
console.log("Preferenza Salvata Con Successo")
}).catch(function(error) {
console.log(error.message)
});
setTimeout(function() {
location.reload()
}, 500);
}
还可以查看Firebase的docs,了解如何开始使用Firebase身份验证,以获取有关如何使用auth()
中的信息的更多信息。
编辑
我认为您的安全规则应如下所示,但我不确定100%:
service cloud.firestore {
match /databases/{database}/documents {
match /users/{userID} {
allow read, write: if request.auth.uid == userID;
}
}
}