Я пытаюсь заставить 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 );
}