1
我发现这个documentation解释了如何链接匿名用户和新的注册用户,但我无法理解它是如何工作的。linkWithCredential如何工作?它如何与规则一起工作?
从还发现here的解释,我有一个大的画面如下图所示(请纠正我,如果我错了):
- 用户登录匿名:有userUid(只是举例)
ANONYM-USER-UID
- 用户比数据如下图所示添加到购物车:
数据
-- shoppingCart
-- ANONYM-USER-UID
-- <push-id>
-- itemUid: <item-uid>
-- count: 2
-- <push-id>
-- itemUid: <other-item-uid>
-- count: 1
-- OTHER-USER-UID
-- .......
与规则:只有适当用户ID可以访问购物车
"rules": {
"shoppingCart" {
"$userUid": {
".read": "auth.uid == $userUid"
}
}
}
- 结帐之前,用户 “被迫” 注册/或登录,
AuthCredential
则检索然后打电话给linkWithCredential
。用户不是使用新userUID例如REGISTERED-USER-UID
的问题是,每当客户端代码查询shoppingCart/REGISTERED-USER-UID
将它取回的shoppingCart/ANONYM-USER-UID
项目列表?规则是否允许?
如果应用于更复杂的规则,例如,规则变得 - 只有适当的用户ID可以访问购物车,但userUid绝不能在黑名单孩子。
"rules": {
"shoppingCart" {
"$userUid": {
".read": "auth.uid == $userUid && root.child('blackList').child($userUid).val() == false"
}
}
}
像这样的逻辑限制,它会成功返回列表吗?
谢谢你解释了很多 – ktutnik