ارغب بعمل ربط بين اكثر من collections وقمت بتابع هذا الطريقة ولكني لا اعلم هل الطريقة صحيحه او توجد طريقة افضل لفعل ذلك
مع العلم انني سوف اتعامل او سوف أقوم بربط عدد كبير من collections قد يصل إلى 25 collections هل توجد مشكلة في ذلك؟ او طريقة العمل لدي خطاء؟ حيث انني ارغب بالعمل مع اسرع طريقة تحضر البيانات للمستخدم
void _getbooksData() async {
final booksSnapshotFuture = FirebaseFirestore.instance
.collection('books')
.where('id', isEqualTo: 522)
.get();
final results = await Future.wait([booksSnapshotFuture]);
final booksSnapshot = results[0];
final booksDocs = booksSnapshot.docs;
if (booksDocs.isNotEmpty) {
final booksData =booksDocs.first.data();
final categorySnapshotFuture = FirebaseFirestore.instance
.collection('Category')
.where('idMainCat',
isEqualTo: booksData.containsKey('IDCat')
? booksData['IDCat']
: null)
.get();
final subCategorySnapshotFuture = FirebaseFirestore.instance
.collection('SubCategory')
.where('idSubCat',
isEqualTo: booksData.containsKey('Id_Sub')
? booksData['Id_Sub']
: null)
.get();
final results = await Future.wait([
categorySnapshotFuture,
subCategorySnapshotFuture,
]);
final categorySnapshot = results[0];
final categoryDocs = categorySnapshot.docs;
final categoryData = categoryDocs.isNotEmpty ? categoryDocs.first.data() : null;
final subCategorySnapshot = results[1];
final subCategoryDocs = subCategorySnapshot.docs;
final subCategoryData = subCategoryDocs.isNotEmpty ? subCategoryDocs.first.data() : null;
final combinedData = FullListWomanModel.fromJson(
Map.from(booksData ?? {})
..addAll(categoryData ?? {})
..addAll(subCategoryData ?? {})
);
setState(() {
_ListDataDisplay.add(combinedData);
});
}
}
السؤال
Flutter Dev
تحيه طيبه
لدي استفسار لو تكرمتم
ارغب بعمل ربط بين اكثر من collections وقمت بتابع هذا الطريقة ولكني لا اعلم هل الطريقة صحيحه او توجد طريقة افضل لفعل ذلك
مع العلم انني سوف اتعامل او سوف أقوم بربط عدد كبير من collections قد يصل إلى 25 collections هل توجد مشكلة في ذلك؟ او طريقة العمل لدي خطاء؟ حيث انني ارغب بالعمل مع اسرع طريقة تحضر البيانات للمستخدم
void _getbooksData() async { final booksSnapshotFuture = FirebaseFirestore.instance .collection('books') .where('id', isEqualTo: 522) .get(); final results = await Future.wait([booksSnapshotFuture]); final booksSnapshot = results[0]; final booksDocs = booksSnapshot.docs; if (booksDocs.isNotEmpty) { final booksData =booksDocs.first.data(); final categorySnapshotFuture = FirebaseFirestore.instance .collection('Category') .where('idMainCat', isEqualTo: booksData.containsKey('IDCat') ? booksData['IDCat'] : null) .get(); final subCategorySnapshotFuture = FirebaseFirestore.instance .collection('SubCategory') .where('idSubCat', isEqualTo: booksData.containsKey('Id_Sub') ? booksData['Id_Sub'] : null) .get(); final results = await Future.wait([ categorySnapshotFuture, subCategorySnapshotFuture, ]); final categorySnapshot = results[0]; final categoryDocs = categorySnapshot.docs; final categoryData = categoryDocs.isNotEmpty ? categoryDocs.first.data() : null; final subCategorySnapshot = results[1]; final subCategoryDocs = subCategorySnapshot.docs; final subCategoryData = subCategoryDocs.isNotEmpty ? subCategoryDocs.first.data() : null; final combinedData = FullListWomanModel.fromJson( Map.from(booksData ?? {}) ..addAll(categoryData ?? {}) ..addAll(subCategoryData ?? {}) ); setState(() { _ListDataDisplay.add(combinedData); }); } }
رابط هذا التعليق
شارك على الشبكات الإجتماعية
4 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.