在函数中执行Firestore查询时,需要确保已经对Firestore进行初始化,并且在查询结果返回之前等待异步操作完成。
示例代码:
private void loadDataFromFirestore() {
FirebaseFirestore firestore = FirebaseFirestore.getInstance();
CollectionReference myCollectionRef = firestore.collection("myCollection");
// Example query
Query myQuery = myCollectionRef.whereEqualTo("field", "value");
myQuery.get().addOnSuccessListener(new OnSuccessListener() {
@Override
public void onSuccess(QuerySnapshot queryDocumentSnapshots) {
// Your code to handle query results
}
}).addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
// Your code to handle query failure
}
});
}
如果在调用函数时遇到空查询结果的问题,可以尝试增加等待异步操作完成的代码:
public void myFunction() {
// Initialize Firebase app
FirebaseApp.initializeApp(this);
// Load data from Firestore
loadDataFromFirestore().addOnSuccessListener(new OnSuccessListener() {
@Override
public void onSuccess(Void aVoid) {
// Do something with the data
}
}).addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
// Handle errors
}
});
}
private Task loadDataFromFirestore() {
FirebaseFirestore firestore = FirebaseFirestore.getInstance();
CollectionReference myCollectionRef = firestore.collection("myCollection");
// Example query
Query myQuery = myCollectionRef.whereEqualTo("field", "value");
return myQuery.get().continueWith(new Continuation() {
@Override
public Void then(@NonNull Task task) throws Exception {
if (task.isSuccessful()) {
QuerySnapshot querySnapshot = task.getResult();
// Your code to handle query results
} else {
// Your code to handle query failure
}
return null;
}
});
}