使用以下安全规则:
service cloud.firestore {
match /databases/{database}/documents {
match /{document=**} {
allow read, write: if request.auth != null;
}
}
}
我的应用程序似乎使用firebaseauth
进行了正确的身份验证,因为mfirebaseauth.getCurrentUser().getuid()
返回正确的用户ID。
我是不是做错了什么?
编辑:我只想说,我设法解决了这个问题,降级到4.6.2。我在这篇文章中有更多的细节
预编辑:自从我升级react原生版以来,这种情况就一直发生在我身上,我一生都无法解决这个问题。我已经调试了它,我的用户在请求时肯定是经过身份验证的,我通过运行下面的命令检查了这一点,我在那里有一个uid
firebase.auth().currentUser
所以接下来我要做的就是检查实际请求中的会话,看看发生了什么。我在react应用程序的入口点添加了一段代码
XMLHttpRequest = GLOBAL.originalXMLHttpRequest ?
GLOBAL.originalXMLHttpRequest :
GLOBAL.XMLHttpRequest
当我运行这个代码时,它又神奇地工作了。这是通过浏览器委托请求,所以可能不是一个真正的测试。
然后我启动了Charles,比较了新的react-native构建和旧的react-native构建的请求。这些请求在我看来是一样的(除了不同的sessionId),所以我不知道。令人沮丧的是缺乏通过firestore控制台的调试工具。
我的直觉是说一些auth头已经过期/缓存,它不是FireStore。在这一点上我的头撞在桌子上
我使用的是Role(允许读,写:如果request.auth.uid!=null),当我登录时,我得到的数据是ok的,但当我注销用户时,我得到的错误是:缺少或不充分的权限。首先,我认为这是因为我没有取消订阅我尝试的可观察的(rxjs/operator/takewhile)即使我使用异步管道,我也得到了同样的错误。
我在自学firestore,我想不出一种方法,只允许用户更新、删除或阅读他们添加的集合。 我使用firebase auth进行用户处理。对于每个集合,我将作为保存在数据库中。 这是我的规矩 当我试图读取/获取数据时,我得到错误。 我正在使用firestore的web api(JavaScript)。这是我用来读取数据的代码。
意向行为 目标是修改我的安全规则,以便只有经过身份验证的用户才能读写该特定用户的数据。这是基于users UID,这是我们如何识别单个用户的(这是通过firebase身份验证完成的,所以不确定问题是什么)。 我的数据库结构 FirebaseError:权限缺失或不足 任何关于我在这里能做什么的建议都将不胜感激。我在其他问题中找不到任何适用的东西。 我的查询 *我的错误
我编写了一些与默认规则完美配合的代码。代码如下: 但如果我用这些规则 我明白了 我做错了什么?
我的Firestore数据库有一些用户和一些s。如果没有其他人认领,用户可以认领。他们通过在上创建一个文档来声明,该文档有一个名为的字段,该字段是对他们自己的用户文档的引用。 我想我已经在这些安全规则中捕捉到了: 但是,当为所有权删除文档时,我获得了: 我是这样做的: 如果我打开read和write设置为true的文档,就不会出现此异常。 我的规则怎么了?他们用模拟器测试正常。