#c# #firebase #unity3d #firebase-authentication
#c# #firebase #unity3d #firebase-аутентификация
Вопрос:
У меня есть приложение в Unity. Я могу войти в firebase на своем ПК и при создании .exe, но при создании apk не удалось войти в систему. Должен ли я настроить что-нибудь еще?
Мой скрипт
void Start()
{
auth = Firebase.Auth.FirebaseAuth.DefaultInstance;
}
public void Login()
{
string email = inputFieldEmail.text;
string password = inputFieldPassword.text;
auth.SignInWithEmailAndPasswordAsync(email, password).ContinueWith(task => {
if (task.IsCanceled)
{
Debug.LogError("SignInWithEmailAndPasswordAsync was canceled.");
return;
}
if (task.IsFaulted)
{
Debug.LogError("SignInWithEmailAndPasswordAsync encountered an error: " task.Exception);
return;
}
Firebase.Auth.FirebaseUser newUser = task.Resu<
Debug.LogFormat("User signed in successfully: {0} ({1})",
newUser.DisplayName, newUser.UserId);
GameManager.instance.SetNombre(email.Split('@')[0]);
signedIn = true;
});
}
Ответ №1:
Да, вы должны настроить на своей консоли Firebase ключи вашего мобильного устройства. Также помните, что Firebase в настоящее время работает с API 16 .
Дополнительная информация здесь:https://firebase.google.com/docs/unity/setup
Комментарии:
1. Я изменил свой вопрос. Должен ли я заменить метод start для шага 6?
2. попробуйте. Шаг 6 работает для меня, если замена этого фрагмента кода по-прежнему не работает, проверьте конфигурацию вашей консоли.
Ответ №2:
Несколько кратких советов по этому коду, попробуйте заменить ContinueWith
на ContinueWithOnMainThread
. Это упростит отладку вашего кода и позволит избежать любых проблем, связанных с потоками в Unity (в частности, ваш GameManager.instance.SetNombre
заставляет меня нервничать). Это ошибка при замене.
Чтобы аутентификация работала на Android, вам нужны три вещи:
- службы Google.файл json (есть вероятность, что у вас есть GoogleService-Info.plist, если вы зарегистрировали приложение для iOS). С справочного сайта:
- Получите конфигурационный файл для вашего приложения Android, перейдите в настройки проекта в консоли Firebase.
- В карточке «Ваши приложения» выберите название пакета приложения, для которого вам нужен конфигурационный файл.
- Нажмите Google-services.json.
- Переместите ваш конфигурационный файл в каталог модуля (на уровне приложения) вашего приложения. Убедитесь, что в вашем приложении есть только этот самый последний загруженный конфигурационный файл.
(примечание для шага 4 в Unity — просто поместите его куда-нибудь в свои активы / каталог)
-
Убедитесь, что вы включили аналитику в своей консоли Firebase. Похоже, вы это уже делали.
-
Добавьте свой SHA-1 в Firebase. Это основано на ключе подписи, поэтому каждому разработчику может потребоваться зарегистрировать свой локальный development SHA-1, и вы захотите зарегистрировать свой окончательный ключ подписи. С справочного сайта:
Выполните эти действия, если вы изначально не предоставили отпечаток пальца сертификата SHA для своего приложения Firebase Android или если вам нужно добавить дополнительный.
- Убедитесь, что у вас есть отпечаток пальца SHA вашего сертификата подписи.
- В настройках вашего проекта перейдите на карточку «Ваши приложения».
- Выберите приложение Firebase для Android, к которому вы хотите добавить отпечаток SHA.
- Нажмите Добавить отпечаток пальца.
- Введите или вставьте отпечаток пальца SHA, затем нажмите Сохранить.
Чтобы получить ключ SHA-1 для разработки, введите примерно такую команду:
keytool -list -v -alias androiddebugkey -keystore ~/.android/debug.keystore
И если вы не можете запустить команду keytool, я написал это краткое объяснение. Вы можете найти его в своем каталоге JDK (у вас где-то есть JDK, если вы создаете сборки Android).