如何更新 Firestore 中的值
How to update value in firestore
如何将状态更新为真:
FirebaseFirestore rootRef = FirebaseFirestore.getInstance();
CollectionReference applicationsRef = rootRef.collection("Root");
DocumentReference applicationIdRef = applicationsRef.document("Registration");
applicationIdRef.update("Status",true).addOnCompleteListener(task -> {
}).addOnFailureListener(new OnFailureListener() {
@Override public void onFailure(@NonNull Exception e) {
Log.d("TAG", "onFailure: "+e);
}
});
我是用这种方法做的,但我不知道如何进入状态字段。
Map
字段是(相当深)嵌套的。要更新嵌套字段,您可以像这样使用点符号:
applicationIdRef.update("Map1.Map2.Map3.Status",true)
上的 Firebase 文档
但即便如此,由于值在数组中,因此无法通过索引更新数组中的单个项目。所以 Map1.Map2.Map3.0.Status
不会起作用。您将需要:
- 在您的应用程序代码中从数据库中读取文档。
- 更新嵌套字段中数组中的项目。
- 将整个数组写回数据库。
这个 updating a single item in an array 之前已经被广泛讨论过,所以我建议也查看其中的一些答案。
如何将状态更新为真:
FirebaseFirestore rootRef = FirebaseFirestore.getInstance();
CollectionReference applicationsRef = rootRef.collection("Root");
DocumentReference applicationIdRef = applicationsRef.document("Registration");
applicationIdRef.update("Status",true).addOnCompleteListener(task -> {
}).addOnFailureListener(new OnFailureListener() {
@Override public void onFailure(@NonNull Exception e) {
Log.d("TAG", "onFailure: "+e);
}
});
我是用这种方法做的,但我不知道如何进入状态字段。
Map
字段是(相当深)嵌套的。要更新嵌套字段,您可以像这样使用点符号:
applicationIdRef.update("Map1.Map2.Map3.Status",true)
上的 Firebase 文档
但即便如此,由于值在数组中,因此无法通过索引更新数组中的单个项目。所以 Map1.Map2.Map3.0.Status
不会起作用。您将需要:
- 在您的应用程序代码中从数据库中读取文档。
- 更新嵌套字段中数组中的项目。
- 将整个数组写回数据库。
这个 updating a single item in an array 之前已经被广泛讨论过,所以我建议也查看其中的一些答案。