簡體   English   中英

Flutter | 如何從 Firestore 獲取對象列表?

[英]Flutter | How to get a List of Objects from Firestore?

這是我的問題 Object:

class Question {
  String text;
  String correctAnswer;
  bool answer;

  Question(String q, bool a, String ca) {
    text = q;
    answer = a;
    correctAnswer = ca;
  }
}

我想從 Firestore 獲取問題列表,如下所示:

List<Question> questionBank = [];

Firestore看起來像這樣:

我怎樣才能做到這一點?

你可以像這樣從firestore獲取數據

void _onPressed() {
  firestoreInstance.collection("Questiions").get().then((querySnapshot) {
    querySnapshot.docs.forEach((result) {
      print(result.data());
    });
  });
}

有關更多詳細信息,您可以參考此https://medium.com/firebase-tips-tricks/how-to-use-cloud-firestore-in-flutter-9ea80593ca40

從 Cloud Firestore 檢索問題並轉換為列表:

  Future<List<Question>> fetchQuestions(String userId) async {
    final questions = new List<Question>();
    final doc = await FirebaseFirestore.instance.collection('Questions').doc(userId).get();
    final questionsTmp = doc.data().questions;
    questionsTmp.forEach((questionTmp) {
      questions.add(Question.fromMap(questionTmp));
    });
    return questions;
  }

在問題 class 中添加 fromMap 方法:

class Question {
  String text;
  String correctAnswer;
  bool answer;

  Question(String q, bool a, String ca) {
    text = q;
    answer = a;
    correctAnswer = ca;
  }

  static Question fromMap(Map<String, dynamic> map) {
    return Question(
      map['text'],
      map['answer'],
      map['correctAnswer'].ToString() == 'true'
    );
  }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM