firebase - firebase数据库读写权限被拒绝
问题描述
我正在尝试从 Web 应用程序读取和写入 firebase 数据库,我收到此错误 ,当调用 writeUserData() 函数时出现错误
这是js代码
<script src="https://www.gstatic.com/firebasejs/5.5.1/firebase.js"></script>
<script>
// Initialize Firebase
var config = {
// copied from firebase website
};
firebase.initializeApp(config);
writeUserData();
function writeUserData() {
firebase.database().ref('options/gK6YJVMAr82Pp8GHmjJa').set({
active_table: '2222',
});
}
</script>
解决方案
您正在混淆 Firebase 提供的两种数据库类型:实时数据库和 Firestore。
您将数据(并编写安全规则)存储在 Firestore 中,但用于编写数据的代码 ( firebase.database().ref('options/gK6YJVMAr82Pp8GHmjJa').set()
) 对应于实时数据库。
您将在此处找到将数据写入 Firestore 的文档:https ://firebase.google.com/docs/firestore/manage-data/add-data
因此,在您的情况下,您应该按照以下原则做一些事情:
var db = firebase.firestore();
db.collection("options").doc("gK6YJVMAr82Pp8GHmjJa").set({
active_table: '2222',
})
.then(function() {
console.log("Document successfully written!");
})
.catch(function(error) {
console.error("Error writing document: ", error);
});
注意使用firebase.firestore()
代替firebase.database()
。
推荐阅读
- ios - iOS:即使 SDK 未初始化也未使用,Facebook SDK 也会调用 graph.facebook.com
- javascript - 为什么 redux diff 说状态是相等的,即使它们不是
- kubernetes - 无法理解 kubernetes 的 `When should you use a startup probe` 中的死锁场景?
- c++ - 使用 VS Code 设置 C++
- r - SunburstR:颜色矢量
- amazon-s3 - 我可以将文件列出到其他人的 azure blob 存储吗?
- c++ - 当我们将 int 转换为 float 到 int 时,在 c 中适合 int 溢出的正确方法
- javascript - 检查函数执行完成
- mqtt - 将所有传递的消息显示给 Mosquitto Broker 的命令?
- java - 使用 Keycloak 进行微服务身份验证