Firebase Firestore使用Expo缺失或权限不足(React Native)

我一直在使用FireStore来实现在浏览器中运行良好的项目,但是当我将代码移植到Expo时,在模拟器中运行iOS 11.2 iPhone X时,它会不断出现Error: Missing or insufficient permissions.

Auth工作正常,当我检查Firestore集合对象中的客户端时,设置了相应的UID,并在浏览器中测试相同的代码,一切正常(没有权限问题)。 我想说的是,我95%肯定问题是Firebase lib / react native / expo组合,而不是我的代码。 特别是因为它似乎在浏览器中调用Firestore,所以设置了标头,但是当在Reactotron(来自Expo)中调试调用时,看起来Firebase lib正在进行的调用根本没有标题。

我怀疑它有所不同,但这是我的身份validation规则:

 service cloud.firestore { match /databases/{database}/documents { match /UserData/{userID} { allow read, write: if request.auth.uid == userID; } match /MemberData/{userID} { allow read: if request.auth.uid == userID; } } } 

我试图进行的调用(并且文档中肯定存在数据)如下:

 profile = (await UserDataCollection.doc(`${idToken.uid}`).get()).data(); 

我很好奇是否有其他人遇到过这个问题,如果有的话,有什么办法让Firestore工作吗?

根据之前的评论,降级到4.6.2似乎解决了这个问题。 我不确定确切的根本原因,但auth标头发送方式的行为似乎已经改变了(所以可能存在某些东西?)。 如果我有时间进一步调查,我会更新我的答案。 如果Firebase团队想要validation他们的帐户详细信息,请与我联系。