用户注销后停止接收推送通知

时间:2018-10-08 11:59:01

标签: android firebase firebase-cloud-messaging

我已经使用Firestore数据库创建了一个应用程序。当用户登录或在应用程序中注册后,firebase设备令牌将添加为数据库中的字段。在注销时,我也输入了删除instanceid和令牌的代码。注销后,我仍然收到前一个用户的通知。这是我的代码。

在注册页面上:

private fun addNewUser(uid: String, socialUser: FirebaseUser? = null) {
  FirebaseInstanceId.getInstance().instanceId.addOnSuccessListener(activity, OnSuccessListener<InstanceIdResult> { instanceIdResult ->
        val mToken = instanceIdResult.token
        userModel.deviceToken = mToken
    })
  val mapData = userModel.getMap()
   database.collection(UserModel.COLLECTION_APP_USERS).document(uid).set(mapData, SetOptions.merge())
            .addOnSuccessListener { _: Void? ->
                UserTokenManager(activity).setUserMe(userModel)
                isSignInSuccessful.value = ApiResponse(true)
            }
            .addOnFailureListener { exception: Exception ->
                isSignInSuccessful.value = ApiResponse(exception)
            }

}

所以我在这里在Firestore数据库中添加令牌ID。

现在注销时遵循以下代码。

fun endSession() {
    try {
        val sharedPreferenceHelper = SharedPreferenceHelper(context)
        FirebaseAuth.getInstance().signOut()
        FirebaseInstanceId.getInstance().deleteInstanceId()
        FirebaseInstanceId.getInstance().deleteToken("7398260350" , "FCM")
        SharedPreferenceHelper(context).clearAll()
        val intent = Intent(this, SignInActivity::class.java)
        startActivity(intent)
        finish()
       } catch (e: Exception) {
        Log.e("exception", "==->${e.message}")
   }
}

我仍然在注销后收到通知。

0 个答案:

没有答案