嗨我正在使用react native firebase进行通知我成功整合了它,并且两个平台都会收到通知,但当应用处于前台或后台时, android抬头不会。我阅读了有关此问题的所有问题,但没有任何线索。
应用环境:
所以,当应用程序处于前台时,应用程序需要处理通知我正在做的事情:
componentDidMount() {
this.checkFirebase();
}
registerFbCloudMessagingListener = () => {
firebase.notifications().onNotification(notification => {
if (Platform.OS === "android") {
notification.android.setChannelId("forgroundnotification");
}
firebase.notifications().displayNotification(notification);
});
};
async checkFirebase() {
const enabled = await firebase.messaging().hasPermission();
if (enabled) {
// user has permissions
this.registerFbCloudMessagingListener();
} else {
// user doesn't have permission
this.requestFbPermission();
}
}
async requestFbPermission() {
try {
let permission = await firebase.messaging().requestPermission();
if (permission) {
this.checkFirebase();
}
// User has authorised
} catch (error) {
// User has rejected permissions
}
}
开始我正在使用 mi设备,因为它只在应用托盘中显示通知,然后我在settings > my_app > notifications > show floating notification
turned on
检查了然后抬头开始进入该设备但是然后我尝试使用一个加设备,因为它没有显示。
我检查了所有这些问题
在 oreo 中,我认为它没有显示出来。因为mi有 android N 。 请帮忙 !!!提前谢谢。
答案 0 :(得分:0)
这是我如何破解它。
首先,从Firebase控制台推送通知不会在android上显示通知。这件事我是从不和谐频道得到的。我问了这个问题,有人建议使用firebase API从后端服务器设置自己的服务器(如触发通知),然后开始工作。
此外,您还必须在Android上设置频道并订阅该频道,以使其正常工作。
这是我更新的代码。
请注意,此代码基于
“ react-native-firebase”:“ 4.2.0”
“反应”:“ 16.3.1”
“反应本机”:“ 0.55.3”
有很多方法可能会在最新版本和代码中有所更改,仅供参考。
我当时遵循的步骤如下:
async checkFirebase() {
const enabled = await firebase.messaging().hasPermission();
if (enabled) {
// user has permissions
this.registerFbCloudMessagingListener();
} else {
// user doesn't have permission
this.requestFbPermission();
}
}
async requestFbPermission() {
try {
let permission = await firebase.messaging().requestPermission();
if (permission) {
this.checkFirebase();
}
// User has authorised
} catch (error) {
// User has rejected permissions
}
}
const channelConfig = {
channelId: "channelId",
channelName: "Channel Name"
};
componentDidMount() {
firebase.messaging().subscribeToTopic("test");
const channel = new firebase.notifications.Android.Channel(
channelConfig.channelId,
channelConfig.channelName,
firebase.notifications.Android.Importance.Max
).setDescription("A natural description of the channel");
firebase.notifications().android.createChannel(channel);
this.checkFirebase();
}