用户发帖,说
ADS
发帖。不同的用户通过发送 requests
与帖子互动。
我正在使用不同的模拟器来检查这个。
当我为用户A使用模拟器访问
ADS
帖子并发送requests
时,设备(emulator A
)显示用户A已将请求发送到的
ADS
帖子.
但是,当我为用户
B使用不同的设备(
emulator B
)访问 ADS
帖子时,(即使该帖子与用户 A 访问的帖子不同),模拟器显示用户已向其发送请求的 ADS
帖子,但随后 emulator A
不再显示用户 A已向其发送请求的
ADS
帖子。
我尝试了很多模拟器,同样的事情正在发生。有什么解决办法吗?
我的访问用户
requests
的代码。
QueryDocumentSnapshot<Map<String, dynamic>>? selectedRide;
DateTime dateTime = DateTime.now();
@override
Widget build(BuildContext context) {
final screenWidth = MediaQuery.of(context).size.width;
// final screenHeight = MediaQuery.of(context).size.height;
return StreamBuilder<QuerySnapshot<Map<String, dynamic>>>(
stream:
FirebaseFirestore.instance.collectionGroup('Requests').snapshots(),
builder: (context, snapshot) {
if (snapshot.hasData) {
return ListView.builder(
scrollDirection: Axis.vertical,
itemCount: snapshot.data!.docs.length,
itemBuilder: (context, index) {
final request = snapshot.data!;
String currentID = request.docs[index].get('UID');
if (currentID == FirebaseAuth.instance.currentUser!.uid) {
return Card(
child: ListTile(
onTap: () {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => MyRidesPageScreen(
selectedRide: selectedRide,
)));
setState(() {
selectedRide = snapshot.data!.docs[index];
});
},
title: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
SizedBox(
width: screenWidth * 0.15,
child: Text(
snapshot.data!.docs[index].get('Departure date'),
style: const TextStyle(color: Colors.blue),
),
),
SizedBox(
width: screenWidth * 0.2,
child: Text(snapshot.data!.docs[index]
.get('Departure city')),
),
SizedBox(
width: screenWidth * 0.1,
child: const Text('-'),
),
SizedBox(
width: screenWidth * 0.2,
child: Text(
snapshot.data!.docs[index].get('Arrival city')),
),
SizedBox(
width: screenWidth * 0.15,
child: Text(
snapshot.data!.docs[index].get('Departure time'),
style: const TextStyle(color: Colors.blue),
),
),
],
),
),
);
}
return null;
});
}
if (snapshot.connectionState == ConnectionState.waiting) {
return const Center(child: CircularProgressIndicator());
}
if (!snapshot.hasData) {
return const Center(
child: SizedBox(
child: Text('You have not made any requests yet'),
),
);
}
return const Center(child: CircularProgressIndicator());
},
);
}