[英]Android Firestore Get Collections From Multiple Locations
我開始了一個新項目。 我正在嘗試使用Firebase。 我嘗試將兩個集合合並,然后嘗試將它們合並。
我的數據庫結構:
我的代碼:
public void getProductData(final FireCallback.Product fireCallback){
final List<ProductModel> productModelList = new ArrayList<>();
firestore.collection("products").get()
.addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() {
@Override
public void onComplete(@NonNull Task<QuerySnapshot> task) {
if (task.isSuccessful()) {
for (DocumentSnapshot document : task.getResult()) {
final ProductModel productModel = document.toObject(ProductModel.class);
final String userId = productModel.getUserId();
DocumentReference docRef = firestore.collection("users").document(userId);
docRef.get().addOnSuccessListener(new OnSuccessListener<DocumentSnapshot>() {
@Override
public void onSuccess(DocumentSnapshot documentSnapshot) {
productModel.setUserModel(documentSnapshot.toObject(UserModel.class));
}
});
productModelList.add(feedModel);
}
fireCallback.onProduct(productModelList);
} }});
我的用戶模型來晚了。 而且我無法設置productModel.setUserModel,因為用戶數據來晚了。 我應該怎么做才能正確地填寫清單。
謝謝!
我編輯您的代碼。 希望對您有所幫助。
public void getProductData(final FireCallback.Product fireCallback){
final List<ProductModel> productModelList = new ArrayList<>();
firestore.collection("products").get()
.addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() {
@Override
public void onComplete(@NonNull Task<QuerySnapshot> task) {
if (task.isSuccessful()) {
for (final DocumentSnapshot document : task.getResult()) {
DocumentReference docRef = firestore.collection("users").document(userId);
docRef.get().addOnSuccessListener(new OnSuccessListener<DocumentSnapshot>() {
@Override
public void onSuccess(DocumentSnapshot documentSnapshot) {
final ProductModel productModel = document.toObject(ProductModel.class);
final String userId = productModel.getUserId();
productModel.setUserModel(documentSnapshot.toObject(UserModel.class));
}
});
productModelList.add(feedModel);
fireCallback.onProduct(productModelList);
}
} }});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.