首页 > 解决方案 > firebase数据库读写权限被拒绝

问题描述

我正在尝试从 Web 应用程序读取和写入 firebase 数据库,我收到此错误 调用 writeUserData() 函数时出现错误 ,当调用 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数据库规则 这是规则

这是数据库结构 这是数据结构

标签: firebasefirebase-realtime-databasegoogle-cloud-firestore

解决方案


您正在混淆 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()


推荐阅读