调试依赖于Facebook提供程序uid的Firebase安全规则?

时间:2018-08-13 13:58:40

标签: ios objective-c firebase firebase-security facebook-sdk-4.0

我的iOS应用程序的firebase数据库的结构是,用户数据是基于facebook用户ID构建的:

users-
     |-{fbUid}
       |-user data here

因此,我的规则必须仅允许对经过身份验证的用户进行读取,而仅允许对每个用户在其自己的节点中进行写入。

目前,我的规则的结构如下:

{
 "rules": {
   "users": {
     ".read": "auth != null",
     "$fbId": {
        ".write": "auth != null  && auth.provider === 'facebook' && $fbId  === auth.token.firebase.identities['facebook.com'][0]"
     }
   }  
  }
}

但是!当我在模拟器中运行此程序以测试写入时,我将提供程序设置为Facebook,并将读取位置放置在/users/{fbId}上,并将UID设置为经过身份验证的Firebase用户。不幸的是,$fbId === auth.token.firebase.identities['facebook.com'][0]部分似乎无法正常工作。

我是否缺少此设置?此外,是否有一种方法可以评估并查看包含$fbId === auth.token.firebase.identities['facebook.com'][0]值的调试消息,因为我所看到的只是不允许写入?

0 个答案:

没有答案