我的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]
值的调试消息,因为我所看到的只是不允许写入?