我想在Firestore中查询数据并将查询数据保存到领域,但总是出错。我认为问题是我在创建领域对象之后得到了查询结果。任何人都知道如何处理这个问题,我不知道如何解决这个问题。
这是我的密码
collectionReference = db.collection("Lookup");
Query query = collectionReference.whereEqualTo("email", email );
Log.d("Initial Lookup: ", "begin");
Log.d("Initial Lookup: ", email);
query.get().addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() {
@Override
public void onComplete(@NonNull Task<QuerySnapshot> task) {
Log.d("Doc Snapshot: ", "Complete Query!");
if(task.isSuccessful()){
Log.d("Doc Snapshot: ", "Success Query!");
int i = 0;
for(QueryDocumentSnapshot doc: task.getResult()){
Log.d("Doc Snapshot: ", "-----------------------");
Log.d("Doc Snapshot: ", "" + doc.getData());
i++;
Realm realm = Realm.getDefaultInstance();
realm.beginTransaction();
LookupModel model = realm.createObject(LookupModel.class);
model.setEmail(email);
model.setId(String.valueOf(doc.getData().get("id")) );
Log.d("id", String.valueOf(doc.getData().get("id")) );
model.setSimkey(Simkey);
Log.d("key", Simkey);
realm.commitTransaction();
}
Log.d("Document Query Count: ", "" + i);
} else{
Log.d("Error Snapshot: ", String.valueOf(task.getException()) );
}
}
});
realm = Realm.getDefaultInstance();
LookupModel mod = realm.where(LookupModel.class)
.equalTo("simkey", key)
.findFirst();
String id = mod.getId();
String id = mod.getId();