要解决在Flutter中使用Firebase实时数据库并将存储的值相加并在FutureBuilder中显示总数的问题,我们需要理解几个关键概念:
pubspec.yaml
文件中添加Firebase实时数据库的依赖。import 'package:flutter/material.dart';
import 'package:firebase_database/firebase_database.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(title: Text('Firebase Sum Example')),
body: SumDisplay(),
),
);
}
}
class SumDisplay extends StatefulWidget {
@override
_SumDisplayState createState() => _SumDisplayState();
}
class _SumDisplayState extends State<SumDisplay> {
Future<int> _getSum() async {
final databaseReference = FirebaseDatabase.instance.reference();
DataSnapshot dataSnapshot = await databaseReference.child('values').once();
int sum = 0;
dataSnapshot.value.forEach((key, value) {
sum += value as int;
});
return sum;
}
@override
Widget build(BuildContext context) {
return FutureBuilder<int>(
future: _getSum(),
builder: (BuildContext context, AsyncSnapshot<int> snapshot) {
if (snapshot.connectionState == ConnectionState.waiting) {
return Center(child: CircularProgressIndicator());
} else if (snapshot.hasError) {
return Center(child: Text('Error: ${snapshot.error}'));
} else {
return Center(child: Text('Total Sum: ${snapshot.data}'));
}
},
);
}
}
as int
进行类型转换。通过以上步骤和代码示例,你应该能够在Flutter应用中实现从Firebase实时数据库读取数据并计算总和的功能。
领取专属 10元无门槛券
手把手带您无忧上云