【发布时间】:2021-10-06 13:03:58
【问题描述】:
我对 Firebase 很陌生,但要么我完全误解了某些东西,要么我的 Firebase 帐户有问题。
我在我的 Firebase 应用中添加了一个 Firestore 数据库,最初我选择在测试模式下创建它。据我在文档中阅读,测试模式与生产模式的区别仅在于默认的security rules。
我想正确配置我的规则,所以用户只能访问自己的数据。
但是,我无法使其正常工作,因此我尝试将 Firestore 安全规则配置为不允许对任何人进行任何读取或写入操作。这是我目前在 Firestore 数据库中设置的 -> 规则:
rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
match /{document=**} {
allow read, write: if false;
}
}
}
据我了解,这些规则不应允许在我的数据库中的任何集合中进行任何读取或写入。 规则游乐场确切地告诉我,当我尝试运行任何请求时:
但是,从我的 NextJS 应用程序中,我仍然能够获取如下数据:
import {
getFirebaseAdmin
} from 'next-firebase-auth';
// ...
const categoriesDocument = await getFirebaseAdmin()
.firestore()
.collection('categories')
.doc('D47pV7TxNpDNYNkHgfU0')
.get();
一切正常。我也确定数据正是从这个 Firestore 数据库中获取的,因为当我更改一些文档时,它会反映在获取的数据中。
我还注意到,在 Firebase 中的 Firestore 数据库 -> 规则 -> 监控规则中,我根本看不到任何结果(允许总数:0,拒绝总数:0,错误总数:0)。
知道这里可能出了什么问题吗?我错过了什么?
【问题讨论】:
标签: firebase google-cloud-firestore next.js firebase-security