我成功地实现了FCM。当我从firebase控制台发送消息时,它也会到达模拟器。但当我订阅一个主题时,它不会过滤任何消息。不管我在firebase控制台上给频道写什么,它都会来的。这是我的主要方法。
这是我的主要方法:
void main() async {
WidgetsFlutterBinding.ensureInitialized();
await Firebase.initializeApp(
options: DefaultFirebaseOptions.currentPlatform,
);
// FirebaseMessaging.onBackgroundMessage(_firebaseMessagingBackgroundHandler);
await flutterLocalNotificationsPlugin
.resolvePlatformSpecificImplementation<
AndroidFlutterLocalNotificationsPlugin>()
?.createNotificationChannel(channel);
await FirebaseMessaging.instance
.subscribeToTopic('Herkes');
SharedPreferences.getInstance().then((prefs) {
runApp(
ChangeNotifierProvider<ThemeNotifier>(
create: (_) => ThemeNotifier(prefs.getString('theme')),
child: MyApp(),
),
);
});
}
我的控制台在收到任何消息后都会记录:
W/FirebaseMessaging(4985(:应用程序尚未创建请求的通知通道(Public2(。将使用清单配置或默认值。W/FirebaseMessaging(4985(:应用程序尚未创建AndroidManifest.xml中设置的通知通道。将使用默认值。
与官方文档一样,您需要在应用程序组件内的AndroidManifest.xml中添加以下元数据元素:
<meta-data
android:name="com.google.firebase.messaging.default_notification_channel_id"
android:value="@string/default_notification_channel_id"/>