没有授权用户的 firebase firestore 安全规则

firebase firestore security rules without authed user

我正在使用 firebase 和 firestore 数据库开发一个简单的电子商务网站。 每当客户购买产品时,我想使用触发电子邮件功能触发电子邮件,并将销售详细信息保存在另一个 firestore 数据库中。

使用 'if true' firestore 安全规则一切正常,但现在我已经部署了,我的规则不断更改为

allow create: if request.auth.uid == request.resource.data.author_uid;
allow update, delete: if request.auth.uid == resource.data.author_uid;

并且由于缺少权限或权限不足,我所有的数据库写入都失败了。

据我了解,这意味着除非授权用户登录,否则不允许写入数据库。

我不希望客户必须注册并登录才能从网站购买。 无人登录怎么写数据库?

我试过使用匿名用户,但我不完全理解规则文档。

不确定它是否相关,但我正在使用 vue.js 并且该网站也由 firebase 托管。

"my rules keep getting changed to"

这可能意味着您在 运行 firebase deploy 时部署了一个 firestore.rules 文件。如果是这个原因,您可以从 firebase.json 文件中删除对该规则文件的引用。

updating and deploying your security rules through the Firebase command-line interface 上的文档所述:

Note: When you deploy security rules using the Firebase CLI, the rules defined in your project directory overwrite any existing rules in the Firebase console. So, if you choose to define or edit your security rules using the Firebase console, make sure that you also update the rules defined in your project directory.