【发布时间】:2022-10-02 10:18:19
【问题描述】:
所以我对futurebuilder有问题我希望我的应用程序在bool设置为true但它根本不工作时更新,所以我添加了一行来查看bool的值是否正在改变并发布它\'不改变。
import \'package:cloud_firestore/cloud_firestore.dart\';
import \'package:databse_web_test/database_services/getsocials.dart\';
import \'package:flutter/material.dart\';
import \'database_services/request.dart\';
class RequestWidget extends StatefulWidget {
RequestWidget({Key? key}) : super(key: key);
@override
State<RequestWidget> createState() => _RequestWidgetState();
}
class _RequestWidgetState extends State<RequestWidget> {
String Doc = \"EobkN9fONF4IxmpErB1n\";
CollectionReference request = FirebaseFirestore.instance
.collection(\'socails\')
.doc(\"daaJgE8Pz5UQIlNh47UsmwWcqNi1\")
.collection(\"requests\");
@override
Widget build(BuildContext context) {
return FutureBuilder(
future: request.doc(\"EobkN9fONF4IxmpErB1n\").get(),
builder:
(BuildContext context, AsyncSnapshot<DocumentSnapshot> snapshot) {
if (snapshot.hasError) {
return const Text(\"Something went wrong\");
}
if (snapshot.hasData && !snapshot.data!.exists) {
return const Text(\"Document does not exist\");
}
if (snapshot.connectionState == ConnectionState.done) {
Map<String, dynamic> data =
snapshot.data!.data() as Map<String, dynamic>;
bool isRequested = data[\"isRequested\"];
bool isApproved = data[\"isApproved\"];
if (data[\"isRequested\"] == true && data[\'isApproved\'] == true) {
return GetSocialData();
}
// if (data[\'isApproved\'] == false && data[\'isRequested\'] == true) {
// return Column(
// children: [
// data[\'isApproved\'] == false
// ? const CircularProgressIndicator()
// : GetSocialData()
// ],
// );
// }
if (data[\'isApproved\'] == false && data[\"isRequested\"] == false) {
return Center(
child: ElevatedButton(
onPressed: () {
SendRequest().updateUserData(
isApproved: false, isRequested: true);
setState(() {});
},
child: const Text(\"data send\")));
} else {
return Column(children: [
CircularProgressIndicator(),
Text(snapshot.data!.data().toString())
]);
}
} else {
return const Text(\"Loading database\");
}
});
// if (isRequested == true && isApproved == false) {
// return Center(
// child: ElevatedButton(
// onPressed: () {
// SendRequest()
// .updateUserData(isApproved: false, isRequested: true);
// },
// child: const Text(\"data send\")));
// } else {
// return GetSocialData();
// }
}
}
我真的不知道什么是错的,因为我是新来的颤振我不知道那么多。如果我要使用文本小部件来知道值是否正在改变,我就会知道该值没有改变。此网络应用程序连接到另一个 android 应用程序,该布尔值将由该应用程序更新
-
哦抱歉我不小心写了streambuilder而不是future
标签: flutter flutter-web flutter-futurebuilder flutter-streambuilder