我想将文档快照转换为 pojo 对象。但我无法理解这个 .toObject() 方法背后的逻辑。有人可以解释一下它的工作原理,即参数、它是如何工作的、我应该如何在 firebase 中使用它。
private ArrayList<POJO> mArrayList = new ArrayList<>();
public ArrayList<POJO> getmArrayList() {
return mArrayList;
}
public void getListItems() {
db.collection(collection_name).get()
.addOnSuccessListener(new OnSuccessListener<QuerySnapshot>() {
@Override
public void onSuccess(QuerySnapshot documentSnapshots) {
if (documentSnapshots.isEmpty()) {
Log.d(TAG, "onSuccess: LIST EMPTY");
return;
} else {
// Convert the whole Query Snapshot to a list
// of objects directly! No need to fetch each
// document.
List<POJO> types = documentSnapshots.toObjects(POJO.class);
// Add all to your list
mArrayList.addAll(types);
Log.d(TAG, "onSuccess: " + mArrayList);
}
}
});
}
我的 MainActivity 文件是这样的 -
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
FireStore mido= new FireStore();
ArrayList<POJO> mArr = mido.getmArrayList();
List<POJO> types = new ArrayList<>();
mido.getListItems();
types.addAll(mArr);
String[] iranoutofnames= new String[2];
int i = 0;
for (POJO hello: types) {
iranoutofnames[i] = hello.getName();
i++;
}
for (int j = 0; j < 2; j++) {
Toast.makeText(this, iranoutofnames[0], Toast.LENGTH_LONG).show();
Toast.makeText(this, iranoutofnames[1], Toast.LENGTH_LONG).show();
}
最佳答案
.toObject() 用于将某些数据转换为某些 POJO 数据类型。
关于java - java中.toObject()方法的工作原理是什么?如何使用它将documentsnapshot转换为POJO对象?解释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57202152/