firebase_messaging:通知は届きません

クリドラ

問題の説明:

私は今、firebase_messagingをほぼ1週間機能させようとしました。従来のXcodeAPNSアプリを正常にセットアップしました。これは、すべての新しい証明書などを生成した後に機能しました。しかし、firebase_messagingを使用すると、通知がまったく届きません。私は、新しいフラッター、firebase、appstoreconnectプロジェクト/アプリを再作成することさえしました。しかし、ネイティブXcodeで実装されているか、フラッターで実装されているかを問わず、firebaseから通知をまったく受け取りませんでした。まだ存在しないトピックをサブスクライブすると、作成されます。AndroidとAnalyticsの通知、およびiOSとAndroidのInAppMessagingは正常に機能しているため、間違いなく何かが機能しています。

私がこれまでに試したこと:

  • ネイティブXcodeおよびFlutter / Dartでのfirebase_messagingの公式サ​​ンプルプロジェクト
  • すべてのライセンス/プロジェクトを再作成する
  • トピックごとにメッセージを送信する(とにかくやろうと思っていた)
  • GitHub / stackoverflowからパッチ/修正/ヒントを適用します。

構成を再作成するためのコードスニペット:

再作成する手順は、Firebase Messagingのサンプルプロジェクトをダウンロードするか、ネイティブXcodeまたはFlutter用にFirebaseMessagingを設定する公式ドキュメントに従うことです。ここにリストされている例を再作成するための基本的な手順:


実装されたプラグイン(すべての最新バージョン):

  • firebase_messaging
  • firebase_core
  • firebase_analytics

Flutter / Dart(main.dart):

void firebaseCloudMessaging_Listeners() {
  if (Platform.isIOS) iOS_Permission();

  firebaseMessaging.getToken().then((token){
    print(token);
  });

  firebaseMessaging.configure(
    onMessage: (Map<String, dynamic> message) async {
      print('on message $message');
    },
    onResume: (Map<String, dynamic> message) async {
      print('on resume $message');
    },
    onLaunch: (Map<String, dynamic> message) async {
      print('on launch $message');
    },
  );
}

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

void subscribeToFB() {
  firebaseMessaging.subscribeToTopic('-------------Sandbox');
  print("--- SUBSCRIBED ---");
}

void unsubscribeFromFB() {
  firebaseMessaging.unsubscribeFromTopic('-------------Sandbox');
  print("--- UNSUBSCRIBED ---");
}

実装されたポッド(すべての最新バージョン):

  • ポッド「Firebase /メッセージング」
  • ポッド「Firebase / Analytics」

ネイティブXcode(AppDelegate.h):

#import "AppDelegate.h"

@import UserNotifications;

@interface AppDelegate () <UNUserNotificationCenterDelegate>
@end

@implementation AppDelegate

NSString *const kGCMMessageIDKey = @"gcm.message_id";

- (BOOL)application:(UIApplication *)application
    didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
  // [START configure_firebase]
  [FIRApp configure];
  // [END configure_firebase]

  // [START set_messaging_delegate]
  [FIRMessaging messaging].delegate = self;
  // [END set_messaging_delegate]

  // Register for remote notifications. This shows a permission dialog on first run, to
  // show the dialog at a more appropriate time move this registration accordingly.
  // [START register_for_notifications]
  if ([UNUserNotificationCenter class] != nil) {
    // iOS 10 or later
    // For iOS 10 display notification (sent via APNS)
    [UNUserNotificationCenter currentNotificationCenter].delegate = self;
    UNAuthorizationOptions authOptions = UNAuthorizationOptionAlert |
        UNAuthorizationOptionSound | UNAuthorizationOptionBadge;
    [[UNUserNotificationCenter currentNotificationCenter]
        requestAuthorizationWithOptions:authOptions
        completionHandler:^(BOOL granted, NSError * _Nullable error) {
          // ...
        }];
  } else {
    // iOS 10 notifications aren't available; fall back to iOS 8-9 notifications.
    UIUserNotificationType allNotificationTypes =
    (UIUserNotificationTypeSound | UIUserNotificationTypeAlert | UIUserNotificationTypeBadge);
    UIUserNotificationSettings *settings =
    [UIUserNotificationSettings settingsForTypes:allNotificationTypes categories:nil];
    [application registerUserNotificationSettings:settings];
  }

  [application registerForRemoteNotifications];
  // [END register_for_notifications]

  return YES;
}

// [START receive_message]
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo {
  // If you are receiving a notification message while your app is in the background,
  // this callback will not be fired till the user taps on the notification launching the application.
  // TODO: Handle data of notification

  // With swizzling disabled you must let Messaging know about the message, for Analytics
  // [[FIRMessaging messaging] appDidReceiveMessage:userInfo];

  // Print message ID.
  if (userInfo[kGCMMessageIDKey]) {
    NSLog(@"Message ID: %@", userInfo[kGCMMessageIDKey]);
  }

  // Print full message.
  NSLog(@"%@", userInfo);
}

- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo
    fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler {
  // If you are receiving a notification message while your app is in the background,
  // this callback will not be fired till the user taps on the notification launching the application.
  // TODO: Handle data of notification

  // With swizzling disabled you must let Messaging know about the message, for Analytics
  // [[FIRMessaging messaging] appDidReceiveMessage:userInfo];

  // Print message ID.
  if (userInfo[kGCMMessageIDKey]) {
    NSLog(@"Message ID: %@", userInfo[kGCMMessageIDKey]);
  }

  // Print full message.
  NSLog(@"%@", userInfo);

  completionHandler(UIBackgroundFetchResultNewData);
}
// [END receive_message]

// [START ios_10_message_handling]
// Receive displayed notifications for iOS 10 devices.
// Handle incoming notification messages while app is in the foreground.
- (void)userNotificationCenter:(UNUserNotificationCenter *)center
       willPresentNotification:(UNNotification *)notification
         withCompletionHandler:(void (^)(UNNotificationPresentationOptions))completionHandler {
  NSDictionary *userInfo = notification.request.content.userInfo;

  // With swizzling disabled you must let Messaging know about the message, for Analytics
  // [[FIRMessaging messaging] appDidReceiveMessage:userInfo];

  // Print message ID.
  if (userInfo[kGCMMessageIDKey]) {
    NSLog(@"Message ID: %@", userInfo[kGCMMessageIDKey]);
  }

  // Print full message.
  NSLog(@"%@", userInfo);

  // Change this to your preferred presentation option
  completionHandler(UNNotificationPresentationOptionNone);
}

// Handle notification messages after display notification is tapped by the user.
- (void)userNotificationCenter:(UNUserNotificationCenter *)center
didReceiveNotificationResponse:(UNNotificationResponse *)response
         withCompletionHandler:(void(^)(void))completionHandler {
  NSDictionary *userInfo = response.notification.request.content.userInfo;
  if (userInfo[kGCMMessageIDKey]) {
    NSLog(@"Message ID: %@", userInfo[kGCMMessageIDKey]);
  }

  // Print full message.
  NSLog(@"%@", userInfo);

  completionHandler();
}

// [END ios_10_message_handling]

// [START refresh_token]
- (void)messaging:(FIRMessaging *)messaging didReceiveRegistrationToken:(NSString *)fcmToken {
    NSLog(@"FCM registration token: %@", fcmToken);
    // Notify about received token.
    NSDictionary *dataDict = [NSDictionary dictionaryWithObject:fcmToken forKey:@"token"];
    [[NSNotificationCenter defaultCenter] postNotificationName:
     @"FCMToken" object:nil userInfo:dataDict];
    // TODO: If necessary send token to application server.
    // Note: This callback is fired at each app startup and whenever a new token is generated.
}
// [END refresh_token]

// [START ios_10_data_message]
// Receive data messages on iOS 10+ directly from FCM (bypassing APNs) when the app is in the foreground.
// To enable direct data messages, you can set [Messaging messaging].shouldEstablishDirectChannel to YES.
- (void)messaging:(FIRMessaging *)messaging didReceiveMessage:(FIRMessagingRemoteMessage *)remoteMessage {
  NSLog(@"Received data message: %@", remoteMessage.appData);
}
// [END ios_10_data_message]

- (void)application:(UIApplication *)application didFailToRegisterForRemoteNotificationsWithError:(NSError *)error {
  NSLog(@"Unable to register for remote notifications: %@", error);
}

// This function is added here only for debugging purposes, and can be removed if swizzling is enabled.
// If swizzling is disabled then this function must be implemented so that the APNs device token can be paired to
// the FCM registration token.
- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken {
  NSLog(@"APNs device token retrieved: %@", deviceToken);

  // With swizzling disabled you must set the APNs device token here.
  // [FIRMessaging messaging].APNSToken = deviceToken;
}
@end

IDE(Xcode / VS Code @ macOS HS)はエラーを返しません。また、デバッグログにエラーはありません。アプリは正常に動作していると報告されますが、メッセージが届きません。

誰かがこれを手伝ってくれませんか?ありがとう!

クリドラ

修正は、提案された.p8キーファイルを(Firebaseコンソール>プロジェクト設定>クラウドメッセージングから)削除し、代わりにAPNS開発証明書とリリース証明書を挿入することでした。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

通知がアプリに届きません。(NotificationHubUnauthorizedException:Unauthorized)

分類Dev

FIREBASE_MESSAGING:アプリがバックグラウンドまたは終了しているときにonBackgroundMessageが通知を処理しない

分類Dev

Firebase Cloud MessagingはsendToDeviceに成功しましたが、通知はありません

分類Dev

FCM(Firebase Cloud Messaging):Firebaseプッシュ通知はFirefoxで表示されますが、Chromeでは表示されません

分類Dev

Flutter firebase_messaging 6.0.9

分類Dev

Firebaseトピックメッセージを含むiOSプッシュ通知がデバイスに届きません

分類Dev

Firebase Cloud Messagingはプッシュ通知を作成しませんが情報を取得します

分類Dev

フラッターのアクションボタンでプッシュ通知を実装する方法はありますか?firebase_messagingを使用する

分類Dev

Firebase Cloud Messagingは、アプリケーションの実行時に通知しません

分類Dev

Firebase プッシュ通知は既存の通知を置き換えません

分類Dev

LaravelメールはGmailユーザーには届きません

分類Dev

未処理の例外:MissingPluginException(チャネルplugins.flutter.io/firebase_messagingのメソッドgetTokenの実装が見つかりません)

分類Dev

MissingPluginException(チャネルplugins.flutter.io/firebase_messagingのメソッドgetTokenの実装が見つかりません)

分類Dev

Firebase Cloud MessagingはChromeでは機能しません(iOS)

分類Dev

Railsメーラーはエラーをスローしませんが、メールが届きません

分類Dev

FirebaseはAndroidアプリにプッシュ通知を送信できません

分類Dev

コンソールのfirebaseからメッセージcUrlが届きません

分類Dev

Web firebase.messaging()。onMessageは起動されませんが、バックグラウンド通知は完全に起動されます

分類Dev

com.google.firebase:firebase-messaging:[10.2.1、12.1.0)を解決できませんでした

分類Dev

Firebase Cloud Messagingの使用中は、メッセージをRemoteMessageエラーに変換できません

分類Dev

laravel react api:リクエストが届きません

分類Dev

私の返品明細書に届きません

分類Dev

avrのエラー「相対分岐が届きません」

分類Dev

BotframeworkDirectlineメッセージがボットに届きません

分類Dev

Firebase Cloud Messagingトピックを送信します。メッセージは通知に表示されず、送信されません

分類Dev

firebase_messaging dev14の場合ユーザーが通知をクリックしたときに画面を開く方法(バックグラウンド)

分類Dev

Fedora Linux:sendmailをインストールしましたが、ログインしてもメール通知が届きません

分類Dev

FCMiOSプッシュ通知は通知を受信できません

分類Dev

iOSで通知を受信できません[Firebase]

Related 関連記事

  1. 1

    通知がアプリに届きません。(NotificationHubUnauthorizedException:Unauthorized)

  2. 2

    FIREBASE_MESSAGING:アプリがバックグラウンドまたは終了しているときにonBackgroundMessageが通知を処理しない

  3. 3

    Firebase Cloud MessagingはsendToDeviceに成功しましたが、通知はありません

  4. 4

    FCM(Firebase Cloud Messaging):Firebaseプッシュ通知はFirefoxで表示されますが、Chromeでは表示されません

  5. 5

    Flutter firebase_messaging 6.0.9

  6. 6

    Firebaseトピックメッセージを含むiOSプッシュ通知がデバイスに届きません

  7. 7

    Firebase Cloud Messagingはプッシュ通知を作成しませんが情報を取得します

  8. 8

    フラッターのアクションボタンでプッシュ通知を実装する方法はありますか?firebase_messagingを使用する

  9. 9

    Firebase Cloud Messagingは、アプリケーションの実行時に通知しません

  10. 10

    Firebase プッシュ通知は既存の通知を置き換えません

  11. 11

    LaravelメールはGmailユーザーには届きません

  12. 12

    未処理の例外:MissingPluginException(チャネルplugins.flutter.io/firebase_messagingのメソッドgetTokenの実装が見つかりません)

  13. 13

    MissingPluginException(チャネルplugins.flutter.io/firebase_messagingのメソッドgetTokenの実装が見つかりません)

  14. 14

    Firebase Cloud MessagingはChromeでは機能しません(iOS)

  15. 15

    Railsメーラーはエラーをスローしませんが、メールが届きません

  16. 16

    FirebaseはAndroidアプリにプッシュ通知を送信できません

  17. 17

    コンソールのfirebaseからメッセージcUrlが届きません

  18. 18

    Web firebase.messaging()。onMessageは起動されませんが、バックグラウンド通知は完全に起動されます

  19. 19

    com.google.firebase:firebase-messaging:[10.2.1、12.1.0)を解決できませんでした

  20. 20

    Firebase Cloud Messagingの使用中は、メッセージをRemoteMessageエラーに変換できません

  21. 21

    laravel react api:リクエストが届きません

  22. 22

    私の返品明細書に届きません

  23. 23

    avrのエラー「相対分岐が届きません」

  24. 24

    BotframeworkDirectlineメッセージがボットに届きません

  25. 25

    Firebase Cloud Messagingトピックを送信します。メッセージは通知に表示されず、送信されません

  26. 26

    firebase_messaging dev14の場合ユーザーが通知をクリックしたときに画面を開く方法(バックグラウンド)

  27. 27

    Fedora Linux:sendmailをインストールしましたが、ログインしてもメール通知が届きません

  28. 28

    FCMiOSプッシュ通知は通知を受信できません

  29. 29

    iOSで通知を受信できません[Firebase]

ホットタグ

アーカイブ