Как сказано в заголовке, ProviderData оказывается пустым при использовании анонимного входа с Firebase (Unity SDK 6.14.1).
Во-первых, я использую это для создания / входа в систему с анонимным пользователем:
Firebase.Auth.FirebaseAuth auth = Firebase.Auth.FirebaseAuth.DefaultInstance;
auth.SignInAnonymouslyAsync().ContinueWith(task =>
{
//this succeeds
[insert Code1 you see below here]
}
Затем я связал эту учетную запись с Facebook, используя (Code1):
var credential = Firebase.Auth.FacebookAuthProvider.GetCredential(AccessToken.CurrentAccessToken.TokenString);
auth.CurrentUser.LinkWithCredentialAsync(credential).ContinueWith(task2 =>
{
//this succeeds as well
}
Однако task2.Result
(который является FirebaseUser
-объектом), например, не содержит DisplayName и другая информация. Также теперь к собственному вопросу:
Когда я перезапускаю приложение и снова вызываю auth.SignInAnonymouslyAsync()
, должен ли я ожидать, что ответ (task.Result
) будет содержать поле ProviderData, чтобы узнать, с какими поставщиками связал этот пользователь? Потому что прямо сейчас, если я вхожу в систему при запуске, как я только что описал, ProviderData будет пустым в редакторе Unity и возвращает Firebase только на Android устройстве.
Мне трудно понять, если это предполагаемое поведение, и я должен попытаться войти в систему с помощью Facebook вместо того, чтобы сохранять вход в систему анонимно? Но если это так, мне нужно вручную сохранить, если пользователь подключился к Facebook, что кажется очень неправильным.
Я нашел этот отчет об ошибке, который кажется такой же / похожей проблемой, но был решен долгое время go : https://github.com/firebase/quickstart-unity/issues/467
Может ли кто-нибудь сказать мне, ошибаюсь ли я здесь или это действительно ошибка?