设置后无法访问 Firestore "allow all authenticated"

Can't access Firestore after etting "allow all authenticated"

我正在我的 Chrome 扩展中初始化 FireStore,就像他们在文档中解释的那样:

import { initializeApp } from "firebase/app";
initializeApp({apiKey:'...', ...});

然后调用setDoc存储一个文档。当我在访问规则中设置 allow read, write: true 时,一切都很好。但是当我将其更改为 allow read, write: if request.auth != null 时,我所有的 Firestore 请求开始失败并显示 Error adding document: FirebaseError: [code=permission-denied]: Missing or insufficient permissions.

我假设在初始化代码中提供我的 Firestore API 密钥和其他数据会自动对其进行身份验证。但是,出于某种原因,Firestore 认为我的请求是匿名的。我该如何解决这个问题?

这是我的配置:

rules_version = '2';
service cloud.firestore {
  match /databases/{database}/documents {
    match /{document=**} {
      allow read, write: if request.auth != null
    }
  }
}

request.auth 检查请求是否来自 firebase 身份验证中的经过身份验证的用户。

Firestore API 密钥仅用于将请求发送到正确的 firebase 项目,但不会使 request.auth != null.

您需要针对 firebase 身份验证进行身份验证才能获得 request.auth != null。但在你的情况下,我相信你不希望用户进行身份验证,因此你需要一些其他安全规则来获得你真正想要检查的内容。