Как исправить 'Firebase.Storage.StorageException: пользователь не авторизован для выполнения желаемого действия' УДАЛИТЬ успешные правила входа и хранения? - PullRequest
0 голосов
/ 14 мая 2019

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 и т. Д.Только первый Пользователь работает до тех пор, пока я полностью не убью приложение, после чего снова будет работать только другой Пользователь, с которым впервые произведена попытка.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...