首页 > 解决方案 > 类型'string'不是flutter firebase数据库中'index'类型'int'的子类型

问题描述

当我运行此代码时,我收到一个错误:类型'String'不是'index'的'int'类型的子类型,并且应用程序不运行。有人可以告诉我问题出在哪里或为什么会出现此错误吗?我在这里尝试从 firebase 实时数据库中检索数据。

void main() async {
      WidgetsFlutterBinding.ensureInitialized();
      await Firebase.initializeApp();
    
      FirebaseMessaging.onBackgroundMessage(backgroundHandler);
      runApp(NGU_APP());
    }
    
    // ignore: camel_case_types
    class NGU_APP extends StatelessWidget {
      @override
      Widget build(BuildContext context) {
        return MaterialApp(
          home: MyHomepage(),
          routes: {
            "login": (_) => LoginScreen(),
            "signup": (_) => RegistrationScreen(),
          },
        );
      }
    }
    
    class MyHomepage extends StatefulWidget {
      const MyHomepage({key}) : super(key: key);
      @override
      _MyHomepageState createState() => _MyHomepageState();
    }
    
    class _MyHomepageState extends State<MyHomepage> {
     @override
      void initState() {
        super.initState();
        // getmessages();
        dbref = FirebaseDatabase.instance.reference();
    
    @override
      Widget build(BuildContext context) {
        return MaterialApp(
          home: Scaffold(
            backgroundColor: Color(0xFF6D0131),
            body: SafeArea(
                child: FirebaseAnimatedList(
              shrinkWrap: true,
              query: dbref,
              itemBuilder: (BuildContext context, DataSnapshot snapshot,
                  Animation animation, int index) {
                // var x = snapshot.value['Login'];
                // print(x);
                return ListTile(
                  title: Text(snapshot.value['Main Page']),
                );
              },
            )),
          ),
        );
    }
    }

标签: flutterfirebase-realtime-database

解决方案


快照是一个 JSON 数组。尝试使用:

snapshot.value[index]['Main Page'] 

代替:

snapshot.value['Main Page']

推荐阅读