【发布时间】:2019-06-17 03:06:34
【问题描述】:
我正在尝试从 Cloud Firestore 中的 "players" 数组中删除单个 "m80KEXuYelOGutSLtQelQkIDj9H2" 值。
日志显示字符串 findTeam 是 CoolTeam1,字符串 userId 是 m80KEXuYelOGutSLtQelQkIDj9H2
我的代码是:
DocumentReference docRef = db.collection("teams").document(findTeam);
docRef.update({"players":FieldValue.arrayRemove(userId)});
我在 Android Studio 中为上面的 { 和 }) 获取“意外令牌”。
任何想法将不胜感激?
我也尝试过如下使用点表示法,这会运行但不会删除值:
db.collection("teams").document(findTeam).update("players." + userId, FieldValue.delete());
我也尝试过使用地图更新,它也会运行并在日志中显示“删除玩家成功”。但该播放器并未在 Firestore 中移除。
Map<String,Object> updates = new HashMap<>();
updates.put(userId, FieldValue.delete());
doc.update(updates).addOnCompleteListener(new OnCompleteListener<Void>() {
@Override
public void onComplete(@NonNull Task<Void> task) {
if (task.isSuccessful()){
Log.i(TAG, "Deleting player successful");
}
else{
Log.i(TAG, "Deleting player NOT successful");
}
}
});```
【问题讨论】:
标签: android google-cloud-firestore