flutter firebase:显示数据

问题描述 投票:0回答:0

用户发帖,说

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());
      },
    );
  }
android flutter google-cloud-firestore android-emulator
© www.soinside.com 2019 - 2024. All rights reserved.