如何在火力库中向文档添加哈希图?



我正在尝试将HashMap"attending"添加到.collection("Users"(.document(user_id(,似乎.add((不适用于此,所以我使用了.set((,但是它删除了文档(user_id(上以前存储的所有数据。

在这种情况下,我如何只将字段添加到文档中而不是重写整个文档?

attending.put(ID,a);
firebaseFirestore.collection("Events").document(ID).collection("Users").add(userMap).addOnCompleteListener(new OnCompleteListener<DocumentReference>() {
@Override
public void onComplete(@NonNull Task<DocumentReference> task) {

//Toast.makeText(eventRegistration.this, "User Stores", Toast.LENGTH_SHORT).show();
}
});
firebaseFirestore.collection("Users").document(user_id).set(attending).addOnCompleteListener(new OnCompleteListener<Void>() {
@Override
public void onComplete(@NonNull Task<Void> task) {
Toast.makeText(eventRegistration.this, "Registered Successfully", Toast.LENGTH_SHORT).show();
}
});

在 CollectionReference 上使用 add((。 始终使用随机 ID 创建新文档。 在 DocumentReference 上调用 set(( 将覆盖文档,但您可以通过传递第二个 SetOptions 类型参数来更改它,该参数表示将新数据与现有数据合并 - 只需调用 SetOptions.merge(( 即可获取该对象传递。 update(( 将始终尝试更新现有文档。

您尝试使用地图进行更新的事实不会改变这些方法的工作方式。

文档中还讨论了所有这些操作。

最新更新