设置后无法访问 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
。但在你的情况下,我相信你不希望用户进行身份验证,因此你需要一些其他安全规则来获得你真正想要检查的内容。
我正在我的 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
。但在你的情况下,我相信你不希望用户进行身份验证,因此你需要一些其他安全规则来获得你真正想要检查的内容。