Push-сообщения на Xamarin Android с помощью Firebase ISSUE - PullRequest
0 голосов
/ 13 февраля 2019

Я работаю над приложением для Android и хочу использовать службу push-сообщений Firebase.Я знаю, как это работает, и я нашел этот метод для получения токена, который подключается к Firebase.

Я не могу получить токен, и приложение не подключено к firebase, хотя я добавил google-сервисы.json и я настроили его хорошо, как я видел в учебнике.

Я хотел бы, чтобы мне сказали, что я делаю что-то не так, и как мне следует вызывать методы firebase для подключения.

// MyFirebaseIIDService class

public class MyFirebaseIIDService : FirebaseInstanceIdService
{
    const string TAG = "MyFirebaseIIDService";

    public override void OnTokenRefresh()
    {
        var refreshedToken = FirebaseInstanceId.Instance.Token;
        Log.Debug(TAG, "Refreshed token: " + refreshedToken);
        SendRegistrationToServer(refreshedToken);
    }

    void SendRegistrationToServer(string token)
    {
        // Add custom implementation, as needed.
    }
}

}

// MyFirebaseMessagingService class

public class MyFirebaseMessagingService : FirebaseMessagingService
{
    const string TAG = "MyFirebaseMsgService";

    public override void OnMessageReceived(RemoteMessage message)
    {
        Log.Debug(TAG, "From: " + message.From);

        var body = message.GetNotification().Body;
        Log.Debug(TAG, "Notification Message Body: " + body);
        SendNotification(body, message.Data);
    }

    void SendNotification(string messageBody, IDictionary<string, string> data)
    {
        var intent = new Intent(this, typeof(MainActivity));
        intent.AddFlags(ActivityFlags.ClearTop);
        foreach (var key in data.Keys)
        {
            intent.PutExtra(key, data[key]);
        }

        var pendingIntent = PendingIntent.GetActivity(this, MainActivity.NOTIFICATION_ID, intent, PendingIntentFlags.OneShot);

        var notificationBuilder = new NotificationCompat.Builder(this, MainActivity.CHANNEL_ID)
                                  .SetSmallIcon(Resource.Drawable.ic_stat_ic_notification)
                                  .SetContentTitle("FCM Message")
                                  .SetContentText(messageBody)
                                  .SetAutoCancel(true)
                                  .SetContentIntent(pendingIntent);

        var notificationManager = NotificationManagerCompat.From(this);
        notificationManager.Notify(MainActivity.NOTIFICATION_ID, notificationBuilder.Build());
    }


}

}

В манифесте у меня есть код, соответствующий пожарной базе

...