Unity 2018.3.11f1
XCode 10.2.1
Firebase 6.0.0 (Аутентификация и хранение)
При попытке запустить приложение AR я запустилв баг, когда, несмотря на успешный вход с любыми дополнительными пользователями через Firebase, я не получаю разрешения на загрузку ожидаемых файлов.
Я попытался уничтожить свой существующий экземпляр аутентификации с помощью auth.Dispose ()и выйти из существующего пользователя с помощью auth.SignOut () до моего перехода к следующей сцене, без изменений.В противном случае я не уверен, как решить эту проблему.В этом коде нет никакой разницы по сравнению с тем, что написано в других моих операционных системах.Кроме того, правила для моего хранилища Firebase являются универсальными для всех пользователей, так что это не проблема.
Мой код авторизации для всех, кто интересуется его спецификой:
void Start ()
{
//Establish instance of Firebase Authentication
auth = FirebaseAuth.DefaultInstance;
UserNameInput.text = "";
PasswordInput.text = "";
Debug.Log(Application.persistentDataPath);
//Run the Login method when the LoginButton is pressed, taking the inputs
LoginButton.onClick.AddListener(() => InternetChecker(UserNameInput.text, PasswordInput.text));
}
(Этот метод InternetChecker в конечном итоге выплевывает ввод электронной почты / пароля в метод входа в систему)
public void Login(string email, string password)
{
//Runs Firebase's Authentication Async-style, storing the result in a User variable and displaying this info to the Console
auth.SignInWithEmailAndPasswordAsync(email, password).ContinueWith(task =>
{
if (task.IsCanceled)
{
Debug.Log("SignInWithEmailAndPasswordAsync canceled.");
return;
}
if (task.IsFaulted)
{
Debug.Log("SignInWithEmailAndPasswordAsync error: " + task.Exception);
if (task.Exception.InnerExceptions.Count > 0)
{
UpdateErrorMessage(task.Exception.InnerExceptions[0].Message);
}
return;
}
FirebaseUser user = task.Result;
Debug.LogFormat("User signed in successfully: ({0}) ({1})", user.DisplayName, user.UserId);
userrr = user;
//Reference to ALL of Storage
Firebase.Storage.FirebaseStorage storage = Firebase.Storage.FirebaseStorage.DefaultInstance;
(... и т. Д., Переходит к указанию для загрузок моего хранилища ...)
В Windows 10 / MacOS / Android мое приложение работает нормально.Я вхожу в систему как [ПОЛЬЗОВАТЕЛЬ 1], используя электронную почту / пароль, вход выполнен успешно и отображает идентификатор пользователя, мои файлы (наборы активов и база данных плагинов AR) загружаются в приложение и используются / создаются, а приложение переходит измоя сцена входа в AR-сцену.Затем я могу вернуться к сцене входа (с помощью кнопки, которая просто выгружает пакеты и загружает вход в систему), после чего я могу войти в систему как [ПОЛЬЗОВАТЕЛЬ 2].Происходит новый вход в систему, файлы заменяются другим набором, и сцена AR загружается снова.
Однако на iOS (iPad Mini 4 и новый iPad Pro Gen. 3) это происходитнаперекосяк.Я открываю приложение, регистрируюсь как [ПОЛЬЗОВАТЕЛЬ 1], и все успешно.Затем, вернувшись назад и войдя в систему как [ПОЛЬЗОВАТЕЛЬ 2], я снова вхожу в систему, но после этого все мои запросы на загрузку завершаются с ошибкой:
"Firebase.Storage.StorageException: пользователь не авторизован длявыполнить желаемое действие. "
Объясните?Я не уверен, как у меня может быть «успешный вход в систему» и отображение правильного идентификатора пользователя Firebase, но я не авторизован, чтобы получить все, что разрешено этим новым входом, не говоря уже ТОЛЬКО на iOS.Кроме того, не имеет значения, какой пользователь является пользователем 1, а какой 2,3,4 и т. Д.Только первый Пользователь работает до тех пор, пока я полностью не убью приложение, после чего снова будет работать только другой Пользователь, с которым впервые произведена попытка.