首页 > 解决方案 > 如何在 Firebase 上使用相同的匿名用户?

问题描述

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

问题-

我的数据库只是充满了匿名用户。

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

如何使用相同的匿名用户?我什至在考虑使用自定义令牌登录,并将其保存在用户的设备上——但是我需要在管理员端创建自己的 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);
    });

}

标签: firebaseunity3dfirebase-authenticationgoogle-cloud-functions

解决方案


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


推荐阅读