我不是移动开发人员,但是目前正在使用React本机应用程序,并且在通知方面遇到问题。
注意-使用适用于Android应用程序的Android Firebase SDK或适用于React Native应用程序的React Native Firebase SDK时,会发生这种情况。
在我的项目中,我正在使用React Native Firebase,并具有以下工作流程:
firebase.messaging().getToken()
并将令牌存储到后端,并使用该令牌向设备发送通知,但是发生了同样的事情)app info
-> storage
我知道令牌在以下情况下会发生变化:
但是令牌只有在再次打开应用程序时才会更改,直到那时仍会收到先前设置的令牌的通知。
我已经和我的朋友聊天了,他是Android开发人员,他也有同样的问题。
删除Facebook Messenger或WhatsApp application cache
后,用户将注销并且不会收到通知-我想实施相同的情况。
AndroidManifest.xml
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.package.dp">
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<uses-permission android:name="android.permission.VIBRATE" />
<application
android:name=".MainApplication"
android:label="@string/app_name"
android:icon="@mipmap/ic_launcher"
android:allowBackup="false"
android:theme="@style/AppTheme">
<activity
android:name=".MainActivity"
android:label="@string/app_name"
android:launchMode="singleTop"
android:configChanges="keyboard|keyboardHidden|orientation|screenSize"
android:screenOrientation="userPortrait"
android:windowSoftInputMode="adjustResize">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name="com.facebook.react.devsupport.DevSettingsActivity" />
<meta-data
android:name="com.google.firebase.messaging.default_notification_icon"
android:resource="@drawable/ic_stat_asset_notif" />
<meta-data
android:name="com.google.firebase.messaging.default_notification_color"
android:resource="@color/defaultNotificationColor" />
<service android:name="io.invertase.firebase.messaging.RNFirebaseBackgroundMessagingService" />
<service android:name="io.invertase.firebase.messaging.RNFirebaseMessagingService">
<intent-filter>
<action android:name="com.google.firebase.MESSAGING_EVENT" />
</intent-filter>
</service>
</application>
</manifest>
MainApplication.java
@Override
public void onCreate() {
super.onCreate();
SoLoader.init(this, /* native exopackage */ false);
}
答案 0 :(得分:0)
这很奇怪,因为当我从后端使用过时的FCM令牌发送推送时,我收到FCM状态"NOT_FOUND"
或"PERMISSION_DENIED"
错误。
您可以在此处找到有关此错误的更多信息:
https://cloud.google.com/apis/design/errors
我将所有FCM令牌存储在数据库中,并在收到"NOT_FOUND"
或"PERMISSION_DENIED"
之类的异常时删除无效的密钥