我无法在规则到位的情况下读写数据到Firestore。
我可以访问我的数据并对其进行操作,而无需设置如下所示的规则:
match /{document=**} {
allow read, write: if true;
}
但是我得到了以下规则的“权限被拒绝”错误。
match /{document=**} {
allow read, write: if request.auth.uid != null;
}
这是我的飞镖代码:
if (uid == null) {
user = await a.currentUser();
uid = user.uid;
}
DocumentReference docRef = firestore.collection('users').document(uid);
CollectionReference locations = docRef.collection('locations');
await locations.document().setData(<String, double>{
'latitude': latitude,
'longitude': longitude,
});
我可以想到此请求失败的两种情况:
请帮助我调试此问题。
编辑1:
User u = await a.onAuthStateChanged.first;
if (u != null) {....}
我是否可以使用cloud_firestore软件包打印从dart发送到Firebase的实际请求?
编辑2
对于为什么会发生这种情况有任何帮助吗?
答案 0 :(得分:1)
如果要允许任何人上传文档,只需将规则更改为以下内容。
allow read, write;
如果您只允许经过身份验证的用户允许将文件或文档上传到Firebase,请将规则更改为
allow read, write: if request.auth != null;
答案 1 :(得分:0)
将规则更改为allow read,write: if request.auth !=null;