gpt4 book ai didi

android - 清除应用程序缓存后,如何设置Firebase以停止接收云消息?

转载 作者:行者123 更新时间:2023-11-29 02:18:49 25 4
gpt4 key购买 nike

我不是移动开发人员,但是目前正在使用React本机应用程序,并且在通知方面遇到问题。

注意-使用适用于Android应用程序的Android Firebase SDK或适用于React Native应用程序的React Native Firebase SDK时,会发生这种情况。

在我的项目中,我正在使用React Native Firebase,并具有以下工作流程:


用户登录到应用程序,并且我们将用户ID设置为已订阅Firebase消息传递主题1(UserID),因此只能将特定通知发送给该用户。 (我知道我们可以使用firebase.messaging().getToken()并将令牌存储到后端,并使用该令牌将通知发送到设备,但是正在发生同样的事情)
用户清除app info-> storage中的应用程序缓存和存储
问题:此设备仍然接收发送到先前订阅主题的通知。


我知道令牌会在以下情况下发生变化:


该应用程序删除实例ID。
该应用已在新设备上还原
用户卸载/重新安装应用程序
用户清除应用程序数据。


但是令牌只有在再次打开应用程序时才会更改,并且在此之前仍会收到先前设置的令牌的通知。

我已经和我的朋友聊天,他是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);
}

最佳答案

这很奇怪,因为当我从后端使用过时的FCM令牌发送推送时,我收到FCM状态"NOT_FOUND""PERMISSION_DENIED"错误。
您可以在此处找到有关此错误的更多信息:

https://cloud.google.com/apis/design/errors

我将所有FCM令牌存储在数据库中,并在收到诸如"NOT_FOUND""PERMISSION_DENIED"之类的异常时删除无效的密钥

关于android - 清除应用程序缓存后,如何设置Firebase以停止接收云消息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57753125/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com