Ошибка: сообщение / регистрация-токен-не-зарегистрирован - PullRequest
1 голос
/ 19 июня 2020

Кто-нибудь может объяснить, почему я получаю эту ошибку, когда пытаюсь отправить уведомление на Iphone физическое устройство ??

Error sending message { Error: Requested entity was not found.
    at FirebaseMessagingError.FirebaseError [as constructor] (/srv/node_modules/firebase-admin/lib/utils/error.js:42:28)
    at FirebaseMessagingError.PrefixedFirebaseError [as constructor] (/srv/node_modules/firebase-admin/lib/utils/error.js:88:28)
at new FirebaseMessagingError (/srv/node_modules/firebase-admin/lib/utils/error.js:254:16)
    at Function.FirebaseMessagingError.fromServerError (/srv/node_modules/firebase-admin/lib/utils/error.js:287:16)
    at Object.createFirebaseError (/srv/node_modules/firebase-admin/lib/messaging/messaging-errors.js:34:47)
    at /srv/node_modules/firebase-admin/lib/messaging/messaging-api-request.js:76:42
    at <anonymous>
    at process._tickDomainCallback (internal/process/next_tick.js:229:7)
  errorInfo: 
   { code: 'messaging/registration-token-not-registered',
     message: 'Requested entity was not found.' },
  codePrefix: 'messaging' }

Это говорит о том, что мой регистрационный токен не зарегистрирован. Изучив firebase do c, я увидел, что: https://firebase.google.com/docs/cloud-messaging/send-message#admin_sdk_error_reference

message / registration-token-not-registration:

Предоставленный регистрационный токен не зарегистрирован. Ранее действующий регистрационный токен может быть отменен по разным причинам, в том числе:

  • клиентское приложение отменило регистрацию в FCM
  • клиентское приложение было автоматически отозвано (это может произойти, если пользователь удаляет приложение или iOS, если служба обратной связи APNS сообщила, что токен APNS недействителен.)
  • Срок действия токена регистрации истек. (Например, Google может решить обновить sh регистрационных токенов или срок действия токена APNS для iOS устройств истек.)
  • Клиентское приложение было обновлено, но новая версия не настроена для получения сообщений .

Во всех этих случаях удалите этот регистрационный токен и прекратите использовать его для отправки сообщений.

Но я чувствую, что уже выполнил все требования (APNS уже настроен и добавлен в консоль Firebase) enter image description here (Already create in Certificates, Identifiers & Profiles of my Apple developper account) enter image description here

I even add the code that ask for user permission (It also works, when i test it on my device)

  getIOSPermission() {
    _firebaseMessaging.requestNotificationPermissions(
        IosNotificationSettings(alert: true, badge: true, sound: true));
    _firebaseMessaging.onIosSettingsRegistered.listen((settings) {
      print("Settings registered:$settings");
    });
  }

  void requestIOSPermissions() {
    flutterLocalNotificationsPlugin
        .resolvePlatformSpecificImplementation<
            IOSFlutterLocalNotificationsPlugin>()
        ?.requestPermissions(
          alert: true,
          badge: true,
          sound: true,
        );
  }

if (Platform.isIOS) {
  getIOSPermission();
  requestIOSPermissions();
}
_firebaseMessaging.getToken().then((token) {
  print("Firebase Messaging Token: $token\n");
  usersRef
      .document(firebaseUser.uid)
      .updateData({"androidNotificationToken": token});
});

I also followed all the steps specified in the FCM package readme about the IOS Integration. https://pub.dev/packages/firebase_messaging

Вот мой код AppDelegate.swift:

import UIKit
import Flutter

@UIApplicationMain
@objc class AppDelegate: FlutterAppDelegate {
  override func application(
    _ application: UIApplication,
    didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?
  ) -> Bool {
    if #available(iOS 10.0, *) {
      UNUserNotificationCenter.current().delegate = self as? UNUserNotificationCenterDelegate
    }
    GeneratedPluginRegistrant.register(with: self)
    return super.application(application, didFinishLaunchingWithOptions: launchOptions)
  }
}

Любая идея, почему Я все еще получаю эту ошибку?

Журнал Fcm: enter image description here PostMan log :

введите описание изображения здесь

Кстати, он отлично работает для android

...