Android linkWithCredential是如何工作的?它是如何与规则一起工作的?

Android linkWithCredential是如何工作的?它是如何与规则一起工作的?,android,firebase,firebase-authentication,firebase-security,Android,Firebase,Firebase Authentication,Firebase Security,我发现这解释了如何将匿名用户与新注册用户链接,但我不明白它是如何工作的 从我还发现的解释中,我得到了如下的大图(如果我错了,请纠正我): 用户匿名登录:获得用户UID(仅举个例子)anonyman-User-UID 用户可以将数据添加到购物车,如下所示: 资料 在签出之前,用户“强制”注册/或登录,然后检索AuthCredential,然后调用linkWithCredential。用户不能使用新的用户UID,例如REGISTERED-User-UID 问题是,每当客户端代码查询shoppingC

我发现这解释了如何将匿名用户与新注册用户链接,但我不明白它是如何工作的

从我还发现的解释中,我得到了如下的大图(如果我错了,请纠正我):

  • 用户匿名登录:获得用户UID(仅举个例子)
    anonyman-User-UID
  • 用户可以将数据添加到购物车,如下所示:
  • 资料

  • 在签出之前,用户“强制”注册/或登录,然后检索
    AuthCredential
    ,然后调用
    linkWithCredential
    。用户不能使用新的用户UID,例如
    REGISTERED-User-UID
  • 问题是,每当客户端代码查询
    shoppingCart/REGISTERED-USER-UID
    时,它是否会检索
    shoppingCart/anonyman-USER-UID
    的项目列表?规则允许吗

    例如,如果应用了更复杂的规则,该规则将变为 --只有合适的UserId才能访问购物车,但userUid不能在黑名单子项中

    "rules": {
       "shoppingCart" {
           "$userUid": {
                ".read": "auth.uid == $userUid && root.child('blackList').child($userUid).val() == false"
           }
       }
    }
    

    有了这样一个逻辑限制,它会成功返回列表吗?

    我想你对匿名用户登录的流程有点困惑,然后将其与新的身份验证凭据链接。以下是我的经验

    当用户以匿名身份登录时,系统会分配一个唯一的ID。现在,当用户决定使用一些新的身份验证凭据注册时,所发生的一切是,在匿名登录时生成的先前UID被分配或链接到这些新凭据

    所以实际上没有创建新的UID,您就可以开始了


    一定要让我知道这些信息是否有用

    我认为您对匿名用户登录的流程有点困惑,然后将其与新的身份验证凭据链接。以下是我的经验

    当用户以匿名身份登录时,系统会分配一个唯一的ID。现在,当用户决定使用一些新的身份验证凭据注册时,所发生的一切是,在匿名登录时生成的先前UID被分配或链接到这些新凭据

    所以实际上没有创建新的UID,您就可以开始了


    一定要让我知道这些信息是否有用

    谢谢这解释了很多Hanks这解释了很多
    "rules": {
       "shoppingCart" {
           "$userUid": {
                ".read": "auth.uid == $userUid"
           }
       }
    }
    
    "rules": {
       "shoppingCart" {
           "$userUid": {
                ".read": "auth.uid == $userUid && root.child('blackList').child($userUid).val() == false"
           }
       }
    }