firebase - 如何在 Firebase 上使用相同的匿名用户?
问题描述
我希望来宾用户登录,并在我的身份验证数据库上只创建 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);
});
}
解决方案
将设备 ID 存储在 Firebase 数据库中,每次使用匿名登录方法唱歌时,您都可以检索相同的数据。我不认为 firebase 让我们现在一次又一次地使用相同的匿名用户 ID。