我使用下面的firebase rest API访问我的Firestore数据库数据
https://firestore.googleapis.com/v1/projects/testproject/databases/(default)/documents/Test/Employee?key=a29.ImCbB4CbV3CWoPouWsh24NrQ-3eKUmuK-dELilZGmPqqDlq4jJNWBmJ47MnJ1pBQSDPNqPeknqD4Usm9SIf6pmG-8sfK15QlkQR
要访问我的Firestore数据库,我在关键部分使用了访问令牌,但是我收到了来自Firebase的电子邮件,内容为“ [Firebase]您的Cloud Firestore数据库具有不安全的规则”。直到那时我才发现,即使没有有效的访问令牌,任何人都可以访问我的数据库数据
所以我尝试在数据库中添加如下规则,并希望只有有效的访问令牌才能访问我的数据库
rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
match /{document=**} {
allow read, write: if request.auth.uid != null;
}
}
}
但是添加规则后,即使具有有效的访问令牌,我也无法再使用REST API查询数据库,其余api返回错误以下
{
"error": {
"code": 403,
"message": "Missing or insufficient permissions.",
"status": "PERMISSION_DENIED"
}
}
任何人都知道如何编辑规则以确保数据库安全,同时仍然能够通过REST API进行访问。
谢谢
答案 0 :(得分:0)
我想我想出了访问令牌有什么问题,我必须将令牌作为承载传递给标头,而不是将其作为url的键传递。
答案 1 :(得分:0)
我找到了另一种无需暴露auth令牌即可完成您所要求的方法。我选择的解决方案是允许在Firebase中进行匿名登录。在这里,您可以看到更详细的说明:https://stackoverflow.com/a/60426745/2636562