【问题标题】:Trouble Reading Firebase Database Data in Flutter在 Flutter 中读取 Firebase 数据库数据时遇到问题
【发布时间】:2023-01-20 03:24:21
【问题描述】:

下午好,

我目前正在学习 Flutter 并将其与 Firebase 一起使用。我创建了一个应用程序,它允许用户通过一个屏幕上的文本输入框向数据库提交三个数据值,然后在列表视图中的应用程序的另一个屏幕上读取或打印它们。写入功能工作正常。我可以输入数据值,它们会写入我创建的 Firebase 数据库。但是,当我对列表视图屏幕进行编码以读取数据时,我收到一条错误消息,提示“未为类型‘数据库事件’定义 getter ‘key/value’”。我在第 31、33、36 行得到这个...

print(datasnapshot.key);
print(datasnapshot.value);
datasnapshot.value.forEach

这是相关部分的代码...任何建议将不胜感激。 谢谢,

import 'package:firebase_database/firebase_database.dart';
    import 'package:flutter/material.dart';
    import 'package:firebase_demo/screens/list_page.dart';
    
    
    
    class ListViewReadPage extends StatefulWidget {
      ListViewReadPage({super.key, required this.title});
    
    
      final String title;
    
      @override
      State<ListViewReadPage> createState() => _ListViewReadPageState();
    }
    
    class _ListViewReadPageState extends State<ListViewReadPage> {
    
    
    
      var studentList = [];
    
    
      _ListViewReadPageState() {
        // load all students from firebase database and display them in list view
        FirebaseDatabase.instance.ref().child("students").once()
            .then((datasnapshot) {
              print("Successfully loaded the data");
              print(datasnapshot);
              print("Key");
              print(datasnapshot.key);
              print("value");
              print(datasnapshot.value);
              print("Iterating the value map:");
              var studentTmpList = [];
              datasnapshot.value.forEach((k, v) {
                print(k);
                print(v);
                studentTmpList.add(v);
              });
              print("Final student list: ");
              print(studentTmpList);
              studentList = studentTmpList;
              setState(() {
    
              });
             }).catchError((error) {
              print("Failed to load the data");
              print(error);
             });
      }


我已经确保安装了所有适当的 Firebase 插件并且一切都已初始化。`

【问题讨论】:

    标签: flutter firebase dart firebase-realtime-database flutter-dependencies


    【解决方案1】:

    您命名的 datasnapshot 实际上是一个 databaseEvent 并且为了清楚起见应该这样命名。该事件有一个快照,快照有一个键和一个值。因此,要获取密钥,您应该能够使用 datasnapshot.snapshot.key。同样,该值将是 datasnapshot.snapshot.value

    你真的应该阅读这个文档... https://firebase.flutter.dev/docs/database/usage/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-01-28
      • 2018-02-27
      • 2021-10-12
      • 1970-01-01
      • 2018-12-13
      • 2021-08-08
      • 1970-01-01
      相关资源
      最近更新 更多