我可以通过以下方式更新从HashMap创建的文档中的字段:
public void saveNote(View v) {
String title = editTextTitle.getText().toString();
String description = editTextDescription.getText().toString();
Map<String, Object> note = new HashMap<>();
note.put(KEY_TITLE, title);
note.put(KEY_DESCRIPTION, description);
noteRef.set(note)
.addOnSuccessListener(new OnSuccessListener<Void>() {
@Override
public void onSuccess(Void aVoid) {
Toast.makeText(MainActivity.this, "Note saved", Toast.LENGTH_SHORT).show();
}
})
.addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
Toast.makeText(MainActivity.this, "Error!", Toast.LENGTH_SHORT).show();
Log.d(TAG, e.toString());
}
});
}
public void updateDescription(View v) {
String description = editTextDescription.getText().toString();
noteRef.update(KEY_DESCRIPTION, description);
}
当我从POJO保存文档并使用 toObject
将其转换回来时,如何更新字段?任何例子?
1 回答
为了理解它,用一个简单的pojo类来解释 .
这是示例pojo类
User.java
我有一个单按钮活动,其代码如下
现在观看内部点击监听器按钮的代码 . 这里创建一个User对象并使用setter向其字段添加值 .
之后用名为
User
的集合初始化CollectionReference
并通过collectionReference.document("UserOne").set(user).addOnCompleteListener()
向该集合添加文档这里的文档是
UserOne
,对象是user in set()
方法 . 因此,这将在User
集合中添加/创建名为UserOne
的文档 .Method 1 此方法将使用您在
set()
方法中传递的对象值更新整个文档 . 您必须知道要更新的文档的documentId
. 您可以通过创建这样的新对象来简单地更改字段的值 . 这里正在改变mobile
字段的值 .现在这将按值
0123456789
更新
mobile
字段Method 2
在此方法中,您可以像这样更新pojo类的特定字段 . 我正在更新
mobile
字段,其值为55555
;Note: 在这里,您必须知道文档的
documentId
才能更新其中一个字段使用这两种方法,您必须能够更新文档中使用的pojo类的字段 . 希望这对你有所帮助 .