小编Jeo*_*oxs的帖子

Flutter Firestore - 如何从文档字段中的文档引用获取数据?

我正在构建一个具有不同问题类型的自学应用程序。现在,其中一个问题有一个包含文档参考列表的字段:

在此输入图像描述

在 Flutter 中,我有以下代码:

Query<Map<String, dynamic>> questionsRef = firestore
.collection('questions')
.where('lesson_id', isEqualTo: lessonId);

await questionsRef.get().then((snapshot) {
  snapshot.docs.forEach((document) {
    var questionTemp;
    switch (document.data()['question_type']) {


      ....



      case 'cards':
        questionTemp = CardsQuestionModel.fromJson(document.data());
        break;


      ....


    }
    questionTemp.id = document.id;
    questions.add(questionTemp);
  });
});
Run Code Online (Sandbox Code Playgroud)

现在,通过“questionTemp”,我可以访问所有字段(lesson_id、options、question_type 等),但是当涉及“cards”字段时,我如何访问该文档引用中的数据?

有没有办法告诉 firestore.instance 自动从这些引用中获取数据?或者我需要为每个电话重新拨打电话吗?如果是这样,我该怎么做?

感谢您提前的支持!

firebase google-cloud-platform flutter google-cloud-firestore

7
推荐指数
1
解决办法
1万
查看次数

Flutter Navigator.of(context).pushReplacementNamed 抛出:“未处理的异常:在 main.dart 上使用空值检查运算符”

因此,我开始使用 sdk: ">=2.16.2 <3.0.0" 和 Firebase 集成制作一个 Flutter 应用程序。我在 main.dart 上有以下“authStateChanges()”代码:

if (snapshot.connectionState == ConnectionState.done) {
   FirebaseAuth.instance.authStateChanges().listen((User? user) {
      if (user == null) {
         Navigator.of(context).pushReplacementNamed('login');
      } else {
         Navigator.of(context).pushReplacementNamed('home');
      }
   });
}
Run Code Online (Sandbox Code Playgroud)

它在加载应用程序时第一次工作,但如果用户登录(或退出),则导航器上会出现“未处理的异常:空值检查运算符”。

发生FLutter异常

这是完整的 main.dart 代码:

import 'package:firebase_auth/firebase_auth.dart';
import 'package:flutter/material.dart';
import 'package:firebase_core/firebase_core.dart';
import 'package:pollux_android/src/pages/error_page.dart';
import 'package:pollux_android/src/pages/loading_page.dart';
import 'package:pollux_android/src/routes/routes.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatefulWidget {
  MyApp({Key? key}) : super(key: key);

  @override
  State<MyApp> createState() => _MyAppState();
  final GlobalKey<NavigatorState> navigatorKey = GlobalKey<NavigatorState>();
}

class _MyAppState extends State<MyApp> {
  final …
Run Code Online (Sandbox Code Playgroud)

dart firebase flutter

3
推荐指数
1
解决办法
2282
查看次数