Flutter:从 FirebaseMessaging 的 onBackgroundMessage 方法访问 SharedPreferences

Fab*_*bio 6 push-notification sharedpreferences firebase flutter firebase-cloud-messaging

在我的 Flutter 应用程序中,我想将从 Firebase 数据消息接收的数据保存到 SharedPreferences。我的 FirebaseMessaging 对象配置如下:

_firebaseMessaging.configure(
        onMessage: (Map<String, dynamic> message) {
          // this works fine
          print("onMessage: ");
        },
        onLaunch: (Map<String, dynamic> data) {
          print("onLaunch: ");
        },
        onResume: (Map<String, dynamic> data) {
          print("onResume: ");
        },
        onBackgroundMessage: myBackgroundMessageHandler,
      );
Run Code Online (Sandbox Code Playgroud)

这是顶级 myBackgroundMessageHandler 方法:

Future<dynamic> myBackgroundMessageHandler(Map<String, dynamic> message) {
    // This doesn't work
    print("background message"); // this isn't even printed!
    SharedPreferences.getInstance().then(...) // here I have to save some data
  }
Run Code Online (Sandbox Code Playgroud)

问题是 myBackgroundMessageHandler 似乎根本没有被调用。然而,通知是通过电话收到的。我还尝试从消息中删除通知字段,在这种情况下,调用了 myBackgroundMessageHandler 但通知未到达。有没有办法既接收通知又触发方法?