[英]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.