[英]Unity sign in anynomous on android
我正在尝试在我开发的游戏中的 android 设备上登录 anynomous。 当我在我的 Macbook 上的 Unity 编辑器中运行游戏时,一切运行顺利并且数据库已更新。
但是当我在我的三星设备上编译和运行它时,什么也没有发生,它只是死机了。 有谁知道为什么? 我尝试将 sha1 密钥添加到我在 Firebase 上的项目的指纹中,但没有成功。
这是代码:
private void anonymousSignIn()
{
auth = Firebase.Auth.FirebaseAuth
.DefaultInstance;
auth.SignInAnonymouslyAsync().ContinueWith(task => {
if (task.IsCanceled)
{
Debug.LogError("SignInAnonymouslyAsync was canceled.");
return;
}
if (task.IsFaulted)
{
Debug.LogError("SignInAnonymouslyAsync encountered an error: " + task.Exception);
return;
}
user = task.Result;
Debug.LogFormat("User signed in successfully: {0} ({1})",
user.DisplayName, user.UserId);
print("User signed in");
removeUser();
});
print("Auth done");
}
private void prepareDatabase()
{
FirebaseApp.DefaultInstance
.SetEditorDatabaseUrl("mydatabaseadress/");
DatabaseReference reference =
FirebaseDatabase.DefaultInstance.RootReference;
string userId = "Erik";
User user = new User(userId, 24);
string json = JsonUtility.ToJson(user);
reference.Child("highscore").Child(userId).SetRawJsonValueAsync(json);
}
我需要在冻结点的堆栈跟踪或 Android logcat output 来查看到底发生了什么*我推荐这个 Unity 插件来帮助解析 LogCat)。 如果不知道所有这些是如何联系在一起的,就很难说出“冻结”在您的游戏上下文中可能意味着什么,或者哪个调用可能会导致您的问题。 我确实看到了一些可能的问题:
1) SetEditorDatabaseUrl
不是必需的,我从来没有在自己的项目中使用它。 我假设"mydatabaseadress/"
是这个堆栈溢出问题的临时值,但如果您的项目中只有一个数据库,它也是一个不必要的潜在错误面。
2) removeUser
可能在 Unity 中做一些工作。 因此,您应该将ContinueWith
替换为ContinueWithOnMainThread
(请参阅此)。 这也将确保您获得所有必要的日志记录。
3) auth.CurrentUser
将在您的游戏运行之间持续存在。 每次调用auth.SignInAnonymouslyAsync
都会创建一个新用户- 即使已经注册了一个用户。 您应该将您的授权码更改为:
auth = Firebase.Auth.FirebaseAuth.DefaultInstance;
if (auth.CurrentUser == null) {
auth.SignInAnonymouslyAsync().ContinueWithOnMainThread(task => {
并记住在else
中做任何重要的工作(例如调用removeUser()
)。
4) 在您的prepareDatabase
调用中,您有一个硬编码string userId = "Erik"
。 如果您有这样的数据库规则:
{
"rules": {
"highscore": {
"$uid": {
".write": "$uid === auth.uid"
}
}
}
}
那么它总是会被拒绝。
5) 同样,如果您在调用prepareDatabase
之前没有等待auth.SignInAnonymouslyAsync
完成,默认的"auth != null"
可能会自动失败。
希望对您有所帮助!
——帕特里克
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.