使用 RealmDB (MongoDB) 和 react-native-push-notification 推送通知
Push Notifications with RealmDB (MongoDB) and react-native-push-notification
我正在将 Realm 用于一个已经相当复杂的应用程序,我想通过添加推送通知来完成它。我已经安装了 react-native-push-notification 并使其与 FCM (Firebase Cloud Messaging) 一起使用。
在客户端,我确实收到了来自 Firebase 的测试通知。
然后我通过添加发件人 ID 和 API 密钥在 Realm 控制台中配置推送通知。
问题是,当我从 Realm 发送通知时,它以“已发送”结束,但绝对没有任何反应,Realm 控制台中没有日志,Firebase 端没有任何内容,客户端也没有任何内容。
关于 Realm 推送通知的文档非常有限,我不太清楚该怎么做。该文档主要针对 IOS 和 Android.
这是我在 index.js 中的代码:
import PushNotificationIOS from '@react-native-community/push-notification-ios';
import PushNotification from 'react-native-push-notification';
PushNotification.configure({
onRegister: function (token) {
console.log('TOKEN:', token);
},
onNotification: function (notification) {
console.log('NOTIFICATION:', notification);
notification.finish(PushNotificationIOS.FetchResult.NoData);
},
onAction: function (notification) {
console.log('ACTION:', notification.action);
console.log('NOTIFICATION:', notification);
},
onRegistrationError: function (err) {
console.error(err.message, err);
},
permissions: {
alert: true,
badge: true,
sound: true,
},
popInitialNotification: true,
requestPermissions: true,
});
PushNotification.createChannel(
{
channelId: 'fcm_fallback_notification_channel',
channelName: 'FCM CHANNEL',
channelDescription: 'Description test',
},
created => console.log(`CreateChannel returned '${created}'`),
);
PushNotification.localNotification({
channelId: 'fcm_fallback_notification_channel',
vibrate: true,
vibration: 300,
playSound: true,
soundName: 'default',
});
有谁知道教程或可以给我一些额外信息的东西吗?
因此,要使其正常工作,您必须在 index.js 中添加以下行:
PushNotification.subscribeToTopic('topic-id-in-realm-console');
并在 Realm 控制台中使用相同的主题 ID:
结果是这样的 (index.js):
import PushNotificationIOS from '@react-native-community/push-notification-ios';
import PushNotification from 'react-native-push-notification';
PushNotification.configure({
onRegister: function (token) {
console.log('TOKEN:', token);
},
onNotification: function (notification) {
console.log('NOTIFICATION:', notification);
notification.finish(PushNotificationIOS.FetchResult.NoData);
},
onAction: function (notification) {
console.log('ACTION:', notification.action);
console.log('NOTIFICATION:', notification);
},
onRegistrationError: function (err) {
console.error(err.message, err);
},
permissions: {
alert: true,
badge: true,
sound: true,
},
popInitialNotification: true,
requestPermissions: true,
});
PushNotification.subscribeToTopic('topic-id-in-realm-console');// <== HERE
在客户端:
我正在将 Realm 用于一个已经相当复杂的应用程序,我想通过添加推送通知来完成它。我已经安装了 react-native-push-notification 并使其与 FCM (Firebase Cloud Messaging) 一起使用。
在客户端,我确实收到了来自 Firebase 的测试通知。
然后我通过添加发件人 ID 和 API 密钥在 Realm 控制台中配置推送通知。
问题是,当我从 Realm 发送通知时,它以“已发送”结束,但绝对没有任何反应,Realm 控制台中没有日志,Firebase 端没有任何内容,客户端也没有任何内容。
关于 Realm 推送通知的文档非常有限,我不太清楚该怎么做。该文档主要针对 IOS 和 Android.
这是我在 index.js 中的代码:
import PushNotificationIOS from '@react-native-community/push-notification-ios';
import PushNotification from 'react-native-push-notification';
PushNotification.configure({
onRegister: function (token) {
console.log('TOKEN:', token);
},
onNotification: function (notification) {
console.log('NOTIFICATION:', notification);
notification.finish(PushNotificationIOS.FetchResult.NoData);
},
onAction: function (notification) {
console.log('ACTION:', notification.action);
console.log('NOTIFICATION:', notification);
},
onRegistrationError: function (err) {
console.error(err.message, err);
},
permissions: {
alert: true,
badge: true,
sound: true,
},
popInitialNotification: true,
requestPermissions: true,
});
PushNotification.createChannel(
{
channelId: 'fcm_fallback_notification_channel',
channelName: 'FCM CHANNEL',
channelDescription: 'Description test',
},
created => console.log(`CreateChannel returned '${created}'`),
);
PushNotification.localNotification({
channelId: 'fcm_fallback_notification_channel',
vibrate: true,
vibration: 300,
playSound: true,
soundName: 'default',
});
有谁知道教程或可以给我一些额外信息的东西吗?
因此,要使其正常工作,您必须在 index.js 中添加以下行:
PushNotification.subscribeToTopic('topic-id-in-realm-console');
并在 Realm 控制台中使用相同的主题 ID:
结果是这样的 (index.js):
import PushNotificationIOS from '@react-native-community/push-notification-ios';
import PushNotification from 'react-native-push-notification';
PushNotification.configure({
onRegister: function (token) {
console.log('TOKEN:', token);
},
onNotification: function (notification) {
console.log('NOTIFICATION:', notification);
notification.finish(PushNotificationIOS.FetchResult.NoData);
},
onAction: function (notification) {
console.log('ACTION:', notification.action);
console.log('NOTIFICATION:', notification);
},
onRegistrationError: function (err) {
console.error(err.message, err);
},
permissions: {
alert: true,
badge: true,
sound: true,
},
popInitialNotification: true,
requestPermissions: true,
});
PushNotification.subscribeToTopic('topic-id-in-realm-console');// <== HERE
在客户端: