Приложение Unity зависает при подписке на Firebase Event - PullRequest
0 голосов
/ 28 июня 2018

Я создаю небольшое тестовое приложение с использованием Unity для изучения Firebase и динамического связывания. Я импортировал SDK для динамических ссылок и файл json для google-services.

В моем скрипте я пытаюсь подписаться на событие «DynamicLinkReceived», но добавляю эту строку кода

DynamicLinks.DynamicLinkReceived += ReceivedDeepLink;

заставляет приложение Android зависать на черном экране при загрузке. Когда я запускаю приложение в Unity, оно не зависает и не выдает никаких ошибок. Вот метод, который должен быть вызван для этого события:

void ReceivedDeepLink(object sender, EventArgs args)
{
    var dynamicLinkEventArgs = args as ReceivedDynamicLinkEventArgs;
    Debug.LogFormat("Received dynamic link {0}",
                    dynamicLinkEventArgs.ReceivedDynamicLink.Url.OriginalString);

    inputBottom.text = dynamicLinkEventArgs.ReceivedDynamicLink.Url.OriginalString;

}

1 Ответ

0 голосов
/ 22 августа 2018

Это произошло потому, что вы звоните

DynamicLinks.DynamicLinkReceived += ReceivedDeepLink; 

пока CheckAndFixDependenciesAsync() все еще выполняется.

вы можете обновить fire-base до 5.2.1, где они уже выдают исключение в таком случае. https://firebase.google.com/support/release-notes/unity#5.1.0

сначала инициализируйте firebase, и если (dependencyStatus == DependencyStatus.Available), вы можете подписаться на DynamicLink

void InitializeFirebaseAndStart() {
    FirebaseApp.CheckAndFixDependenciesAsync().ContinueWith(task => {
        dependencyStatus = task.Result;
        if (dependencyStatus == DependencyStatus.Available) {

            DynamicLinks.DynamicLinkReceived += ReceivedDeepLink;

        } else {
            Debug.LogError(
                "Could not resolve all Firebase dependencies: " + dependencyStatus);
        }
    });
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...