Cloud Firestore:权限丢失或不足

时间:2017-11-12 05:45:46

标签: android firebase firebase-authentication google-cloud-firestore

我正在(在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。

我做错了吗?

3 个答案:

答案 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安全规则是一个已知的错误,但已经存在   今天修好了。请再次测试您的安全规则,并告知我们是否   你还在遇到这个问题。

     

问候,凯文