我想在一个数组中存储多个令牌ID。但是,当我尝试在数组中添加添加时,它会更新数组的值,只有单个fcm会保存在其中。
users.document(uid).get()
.addOnSuccessListener {
documentSnapshot ->
if (documentSnapshot.exists()){
var tokenArray = arrayListOf<String>()
tokenArray.add(FirebaseInstanceId.getInstance().getToken()!!)
userHashmap["fcm_token"] = tokenArray
users.document(user.uid).update("fcm_token", tokenArray)
.addOnSuccessListener {
task->
val intent = Intent(this@PhoneLoginActivity, ProfileActivity::class.java)
intent.flags = Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_ACTIVITY_CLEAR_TASK
startActivity(intent)
finish()
}
}
}
.addOnFailureListener {
exception ->
Log.e("Exception", "${exception}")
}
答案 0 :(得分:2)
删除令牌数组,然后用FieldValue.arrayUnion
推送数组。您的令牌将合并到其中。 Reference
users.document(user.uid).update("fcm_token", FieldValue.arrayUnion(FirebaseInstanceId.getInstance().getToken()))
.addOnSuccessListener {
task->
//Todo
}