【发布时间】:2022-01-20 02:55:52
【问题描述】:
我正在尝试通过 ListView.builder() 从 StreamBuilder 或 FutureBuilder 中的实时数据库中获取所有子(“用户”)数据,但不幸的是它总是返回 null!
那我该怎么做呢?
这是我尝试做的:
import 'package:flutter/material.dart';
import 'package:firebase_database/firebase_database.dart';
class HomeWidget extends StatelessWidget {
const HomeWidget({ Key? key }) : super(key: key);
@override
Widget build(BuildContext context) {
final dbRef = FirebaseDatabase.instance.ref().child("users");
return FutureBuilder(
future: dbRef.once(),
builder: (ctx, AsyncSnapshot snapshot){
if(snapshot.connectionState == ConnectionState.waiting){
return const Center(child: CircularProgressIndicator());
}
if(snapshot.hasData){
final userS = snapshot.data!.snapshot.value;
return ListView.builder(
itemCount: userS.length,
itemBuilder: (BuildContext ctx, i)=> Container(
height: 100,
width: 100,
child: Card(
shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(20)),
child: Column(
children: [
Text(userS[i]['username']),
Text(userS[i]['password'])
],
),
),
),
);
}
return const Center(child: Text('There is something wrong!'),);
},
);
}
}
【问题讨论】:
-
请在您的问题中以文本形式包含错误消息。包含屏幕截图实际上应该只针对无法在文本中捕获的内容(例如布局问题的屏幕截图)。
标签: flutter firebase-realtime-database