如何在Firebase上使用相同的匿名用户?

时间:2018-11-12 00:33:10

标签: firebase unity3d firebase-authentication google-cloud-functions

我希望访客用户登录,并在我的身份验证数据库上仅创建1个新用户。

问题-

  • -在Unity编辑器上>每次启动该应用程序都会创建一个新的匿名用户
  • 在Android上,来宾用户保持登录状态,但是在卸载该应用程序后,则会创建另一个新的匿名用户

我的数据库中只有匿名用户。

注意-我使用并检查监视身份验证状态

如何使用同一匿名用户?我什至在考虑使用自定义令牌登录,然后将其保存在用户的设备上,但是随后我需要在管理端创建自己的uid,并且不确定它是否可靠甚至是一个好的解决方案?

Firebase似乎没有为此提供适当的解决方案。您会认为这是基本的。我想念什么吗?

统一代码-

void InitializeFirebase()
{
    Debug.Log("Setting up Firebase Auth");

    auth = Firebase.Auth.FirebaseAuth.DefaultInstance;
    auth.StateChanged += AuthStateChanged;
    AuthStateChanged(this, null);
}

void AuthStateChanged(object sender, System.EventArgs eventArgs)
{
    if (auth.CurrentUser != user)
    {
         bool signedIn = user != auth.CurrentUser && auth.CurrentUser != null;
        if (!signedIn && user != null)
        {
            Debug.Log("Signed out " + user.UserId);
        }
        user = auth.CurrentUser;
        if (signedIn)
        {
            Debug.Log("Signed in " + user.UserId);
        }
    }
}

void OnDestroy()
{
    auth.StateChanged -= AuthStateChanged;
    auth = null;
}
   public static void SignAnonymous()
{
  auth = Firebase.Auth.FirebaseAuth.DefaultInstance;
  auth.SignInAnonymouslyAsync().ContinueWith(task => {
  user = task.Result;

        Debug.LogFormat("User signed in successfully: {0} ({1})",
        user.DisplayName, user.UserId);
    });

}

1 个答案:

答案 0 :(得分:0)

将设备ID存储在Firebase数据库中,每次使用匿名登录方法唱歌时,都可以检索相同的数据。我不认为firebase让我们现在使用相同的匿名用户ID一次又一次地使用。