我正在(在Android上):
com.google.firebase.firestore.FirebaseFirestoreException: PERMISSION_DENIED:权限丢失或不足
使用这些安全规则:
service cloud.firestore {
match /databases/{database}/documents {
match /{document=**} {
allow read, write: if request.auth != null;
}
}
}
我的应用似乎已使用FirebaseAuth
进行了正确的身份验证,因为mFirebaseAuth.getCurrentUser().getUid()
会返回正确的用户ID。
我做错了吗?
答案 0 :(得分:3)
编辑:只想说我设法通过降级到4.6.2来解决问题。我在this post
中有更多详情<强>预编辑:强> 自从我升级反应本机以来,这种情况发生在我身上,我不能为我的生活找出问题所在。我已经调试了它,我的用户在请求时肯定已经过身份验证,我通过运行以下内容检查了这个,并且我在那里有一个uid
firebase.auth().currentUser
所以接下来我要做的就是检查实际请求中的会话,看看发生了什么。我在我的反应应用程序的入口点添加了一段代码
XMLHttpRequest = GLOBAL.originalXMLHttpRequest ?
GLOBAL.originalXMLHttpRequest :
GLOBAL.XMLHttpRequest
当我运行此代码时,它再次神奇地起作用。这是通过浏览器委托请求,但可能不是真正的测试。
然后我启动了Charles并将我的新反应原生构建的请求与我旧的[工作]反应原生构建进行了比较。请求看起来与我相同(除了不同的sessionId)所以我不知道。令人沮丧的是,通过firestore控制台缺少调试工具。
我的直觉是说某些auth标头已过期/缓存,而且它不是firestore。在这一点上我的头撞着桌子
答案 1 :(得分:1)
这似乎是Firestore
问题(今天测试版),而不是客户端。
答案 2 :(得分:1)
我直接询问了Firebase支持团队,因为这个问题对我们的服务很重要,我收到了下面的电子邮件。他们现在似乎修复了这个错误。
如果问题再次发生,请告诉我。
你好,
我们刚刚与我们的工程师确认了这个零星的问题 我们的Firestore安全规则是一个已知的错误,但已经存在 今天修好了。请再次测试您的安全规则,并告知我们是否 你还在遇到这个问题。
问候,凯文