我尝试让react-native-firebase
v6在我的应用中正常工作。我使用React Native 0.59.10。
我已经根据documentation安装了react-native-firebase
v6。与v5不同,它没有指定将服务MyFirebaseMessagingService
添加到AndroidManifest.xml
的过程,因此我没有这样做。之后,该应用在前台时没有收到任何通知,但在后台时却收到了通知。
我试图像这样将MyFirebaseMessagingService
添加到AndroidManifest.xml
中:
<service
android:name=".java.MyFirebaseMessagingService"
android:exported="false">
<intent-filter>
<action android:name="com.google.firebase.MESSAGING_EVENT" />
</intent-filter>
</service>
有一些进展。我从Firebase控制台发送通知后,应用立即崩溃。因此,我知道该应用程序知道传入的通知,但不知何故崩溃了。
下面是我导入和初始化侦听器的代码。
import messaging from '@react-native-firebase/messaging';
import { Alert } from 'react-native';
// Initialize notifications
const init = () => {
try {
messaging().onMessage((message) => {
Alert.alert('Received', JSON.stringify(message));
});
} catch (err) {
Alert.alert('Error', err.message);
}
};
总而言之,我希望在应用程序处于前台状态时收到通知,但是如果不将MyFirebaseMessagingService
添加到AndroidManifest.xml
不会发生任何事情。如果添加它,该应用程序将在收到通知时崩溃。
答案 0 :(得分:0)
好的。经过进一步的梳理和研究,我发现这是预期的行为,而不是错误。
无需向MyFirebaseMessagingService
添加AndroidManifest.xml
或任何其他服务来安装react-native-firebase
v6。
此后,该应用程序在前台时未收到任何通知,但在后台时收到了通知。
实际上,是的。在使用adb logcat -s RNFirebaseMsgService:V
浏览Android日志后,我发现react-native-firebase
v6目前不支持通知。这是他们的代码,使我认为我的应用程序在前台运行时未收到任何通知。
if (remoteMessage.getNotification() != null && remoteMessage.getData().size() == 0) {
// TODO broadcast intent when notifications module ready
return;
}
这对他们来说仍然是一件必不可少的事情!
原来,我需要发送包含自定义数据的通知,因为它已受支持。因此,我需要每次使用它,以便我的应用程序在收到此类通知后可以显示任何内容。