尽管打开了安全规则,但 Firebase Firestore“权限缺失或不足”

时间:2021-04-02 13:16:08

标签: javascript firebase google-cloud-firestore firebase-security

我正在尝试在 Firebase Firestore 中创建一个文档。我已在 Web UI 中手动向其中添加文档,但无法以编程方式添加。

以下是单个 HTML 文件,包含所有代码,直接取自 the docs

<!-- The core Firebase JS SDK is always required and must be listed first -->
<script src="https://www.gstatic.com/firebasejs/8.3.1/firebase-app.js"></script>
<script src="https://www.gstatic.com/firebasejs/8.3.1/firebase-firestore.js"></script>

<script>
    // Your web app's Firebase configuration
    var firebaseConfig = {
        apiKey: "<REDACTED>",
        authDomain: "<REDACTED>",
        projectId: "<REDACTED>",
        storageBucket: "<REDACTED>",
        messagingSenderId: "<REDACTED>",
        appId: "<REDACTED>"
    };
    // Initialize Firebase
    firebase.initializeApp(firebaseConfig);

    var db = firebase.firestore();

    // example from the docs
    db.collection("users").add({
        first: "Ada",
        last: "Lovelace",
        born: 1815
    })
        .then((docRef) => {
            console.log("Document written with ID: ", docRef.id);
        })
        .catch((error) => {
            console.error("Error adding document: ", error);
        });
</script>

我已经编辑了配置对象,但它是直接从 Firebase 配置页面复制的(此外,我知道配置是正确的,因为在另一个应用程序(未图示)中,Firebase Auth 工作得很好)。

打开上述 HTML 页面后,我在控制台中收到以下错误:

Error adding document:  FirebaseError: Missing or insufficient permissions.

我的 Firestore 安全规则如下。它们应该对所有读取和写入完全开放:

rules_version = '2';
service cloud.firestore {
  match /databases/{database}/documents {
    match /{document=**} {
      allow read, write, update, delete, create: if true;
    }
  }
}

尽管出现“权限缺失或不足”错误,但当我转到 Firestore 规则页面的“监控规则”选项卡时,我没有看到任何被拒绝请求的统计信息,好像规则甚至没有得到尽管我在过去 24 小时内至少运行了 50 个请求,但仍然进行了评估: No denied requests

在 Firestore Rules Playground 中运行模拟 Firestore 请求每次都按预期成功,无论请求是否“经过身份验证”。

请指教,我不知道还有什么可尝试的。

1 个答案:

答案 0 :(得分:1)

我只是通过创建一个新项目来回避解决这个问题。我仍然不知道出了什么问题。请参阅我的问题下方的评论以了解可能的解决方案。

相关问题