使用react-native-firebase v6,在前台接收通知时应用崩溃

时间:2019-10-24 04:00:46

标签: android firebase react-native react-native-firebase

我尝试让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不会发生任何事情。如果添加它,该应用程序将在收到通知时崩溃。

1 个答案:

答案 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;
}

这对他们来说仍然是一件必不可少的事情!

原来,我需要发送包含自定义数据的通知,因为它已受支持。因此,我需要每次使用它,以便我的应用程序在收到此类通知后可以显示任何内容。