带有 facebook 身份验证和唯一 ID 的 Firebase 规则
Firebase Rules with facebook Authentication and Unique IDs
我正在寻找一些建议或可能的解决方案来加强我的 firebase 规则。
这是我在 Firebase 中的用户树:
users
|_male
|_uid
|_female
|_uid
UID 将是创建帐户时的纪元时间戳,它将是一个有符号整数。
这些是 firebase 规则,基本上确保用户在可以读取或写入用户之前已经登录并通过 Facebook 进行身份验证:
"users": {
"male":{
".indexOn": ["uid"]
},
"female":{
".indexOn": ["uid"]
},
".read": "auth != null && auth.provider === 'facebook'",
".write": "auth != null && auth.provider === 'facebook'"
},
我只希望用户read/write到他们的树,例如:
users->male->uid->1233254...
恐怕按照我上面的规则,他们可能会读写 from/to 另一个用户树。
如果我能将应用程序 UID 与 Facebook UID 进行比较,那就太好了。
我确实在数据库的另一棵树中捕获了这个细节,例如:
user_fbuid
|_fbuid
|_facebook:a1244dxs
|_uid
我这里确实有更好的规则来检查 auth.uid
:
"user_fbuid": {
"fbuid":{
"$fbuid": {
".indexOn": ["fbuid"],
".read": "$fbuid === auth.uid && auth.provider === 'facebook'",
".write": "$fbuid === auth.uid && auth.provider === 'facebook'"
}
},
},
如果有人有任何想法,我很想听听。谢谢
我最终使用 facebook id 属性作为我自己的 uid 和以下规则:
"$uid": {
// only the user can read and write to their tree
".read": "auth != null && auth.provider === 'facebook' && auth.token.firebase.identities['facebook.com'][0] === $uid",
".write": "auth != null && auth.provider === 'facebook' && auth.token.firebase.identities['facebook.com'][0] === $uid"
},
我正在寻找一些建议或可能的解决方案来加强我的 firebase 规则。
这是我在 Firebase 中的用户树:
users
|_male
|_uid
|_female
|_uid
UID 将是创建帐户时的纪元时间戳,它将是一个有符号整数。
这些是 firebase 规则,基本上确保用户在可以读取或写入用户之前已经登录并通过 Facebook 进行身份验证:
"users": {
"male":{
".indexOn": ["uid"]
},
"female":{
".indexOn": ["uid"]
},
".read": "auth != null && auth.provider === 'facebook'",
".write": "auth != null && auth.provider === 'facebook'"
},
我只希望用户read/write到他们的树,例如:
users->male->uid->1233254...
恐怕按照我上面的规则,他们可能会读写 from/to 另一个用户树。
如果我能将应用程序 UID 与 Facebook UID 进行比较,那就太好了。 我确实在数据库的另一棵树中捕获了这个细节,例如:
user_fbuid
|_fbuid
|_facebook:a1244dxs
|_uid
我这里确实有更好的规则来检查 auth.uid
:
"user_fbuid": {
"fbuid":{
"$fbuid": {
".indexOn": ["fbuid"],
".read": "$fbuid === auth.uid && auth.provider === 'facebook'",
".write": "$fbuid === auth.uid && auth.provider === 'facebook'"
}
},
},
如果有人有任何想法,我很想听听。谢谢
我最终使用 facebook id 属性作为我自己的 uid 和以下规则:
"$uid": {
// only the user can read and write to their tree
".read": "auth != null && auth.provider === 'facebook' && auth.token.firebase.identities['facebook.com'][0] === $uid",
".write": "auth != null && auth.provider === 'facebook' && auth.token.firebase.identities['facebook.com'][0] === $uid"
},