Firebase (Unity SDK) на Vuzix Blade: OnTokenReceived никогда не срабатывал - PullRequest
0 голосов
/ 29 апреля 2019

Я пытаюсь заставить Firebase работать в проекте Unity на Vuzix Blade, чтобы получать там Push-уведомления. Однако обратный вызов OnTokenReceived никогда не вызывается, поэтому я не получаю токен для адресации push-уведомлений.

Vuzix Blade работает на Android 5, и я установил Google Play Services и Google Play Store, так как они не установлены по умолчанию, но необходимы для Firebase. Firebase, кажется, запускается нормально, или, по крайней мере, я не получаю никаких сообщений об ошибках в logcat, и CheckAndFixDependenciesAsync() правильно заканчивается с Firebase.DependencyStatus.Available.

Тот же apk отлично работает на моем телефоне Android (OnePlus 5), где я получаю токен и могу получать уведомления как во время работы приложения, так и в фоновом режиме.

Я использую Unity 2018.3 и Firebase SDK 5.7.0 (но результат с 5.6.0 такой же).

private void Awake()
{
    Firebase.FirebaseApp.CheckAndFixDependenciesAsync().ContinueWith(
            task =>
            {
                var dependencyStatus = task.Result;

                if ( dependencyStatus == Firebase.DependencyStatus.Available ) // this is always true
                {
                    // Create and hold a reference to your FirebaseApp,
                    // where app is a Firebase.FirebaseApp property of your application class.
                    m_kFirebaseApp = Firebase.FirebaseApp.DefaultInstance;

                    // Set a flag here to indicate whether Firebase is ready to use by your app.
                    Firebase.Messaging.FirebaseMessaging.TokenRegistrationOnInitEnabled = true;
                    Firebase.Messaging.FirebaseMessaging.TokenReceived += OnTokenReceived;
                    Firebase.Messaging.FirebaseMessaging.MessageReceived += OnMessageReceived;
                } 
                else
                {
                    Debug.LogError(string.Format("Could not resolve all Firebase dependencies: {0}", dependencyStatus ) );
                    // Firebase Unity SDK is not safe to use here.
                }
            } );
}

// This never gets called!
public void OnTokenReceived(object sender, Firebase.Messaging.TokenReceivedEventArgs token )
{
    m_kToken = token.Token;
    Debug.Log( "Received Registration Token: " + token.Token );
}

1 Ответ

0 голосов
/ 07 июня 2019

Разве Blade не является CTS-совместимым устройством? Это не позволило бы Firebase работать на нем, поскольку для работы Firebase SDK требуется, чтобы на устройстве была включена поддержка Google Mobile Services (GMS).

...