使用来自firestore数据库的geoflutterfire查询结果,使用flutter应用程序返回null或啥都没有,但语法没有错误

Posted

技术标签:

【中文标题】使用来自firestore数据库的geoflutterfire查询结果,使用flutter应用程序返回null或啥都没有,但语法没有错误【英文标题】:Query result using geoflutterfire from firestore database using an flutter app returning null or nothing but there is no error in syntax使用来自firestore数据库的geoflutterfire查询结果,使用flutter应用程序返回null或什么都没有,但语法没有错误 【发布时间】:2022-01-22 16:23:58 【问题描述】:

这里功能的纬度和经度是我当前的位置,并且已根据不同的功能检查是否有效且已使用正确的导入!

有状态的类和其他的ui和方法实现都在那里,只是显示出了问题。

stream.listen 没有返回 documentList 但里面什么也没有,如果可能,请尽快帮助找到问题。

import 'dart:async';
import 'package:firebase_auth/firebase_auth.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:burglar_alert/pages/drawerPage.dart';
import 'package:geolocator/geolocator.dart';

import 'package:cloud_firestore/cloud_firestore.dart';
import 'package:firebase_core/firebase_core.dart';

import 'package:geoflutterfire/geoflutterfire.dart';



// classwise variable
  final geo = Geoflutterfire();
  final _firestore = FirebaseFirestore.instance;

_getNearbyPeoples(lattitude, longitude) 
    GeoFirePoint center = geo.point(latitude: lattitude, longitude: longitude);
    var collectionReference = _firestore.collection('users');

    double radius = 50.0;
    String field = 'location';

    Stream<List<DocumentSnapshot>> stream = geo
        .collection(collectionRef: collectionReference)
        .within(center: center, radius: radius, field: field, strictMode: true);

    stream.listen((List<DocumentSnapshot?> documentList) 
      print("Printing DocumentList Data:");
      print(documentList[0]!.data());
    );
  

showing ui and on "help me" button click , result

firestore databse structure

【问题讨论】:

【参考方案1】:

如果您查看writing geo data 上的geoflutterfire 库的文档,您会看到它在文档中添加了一个名为geohash 的字段。这是在 Firestore 上执行地理查询所必需的。

您的屏幕截图中的文档中缺少此 geohash 字段,这意味着地理查询无法找到它。

要详细了解此属性是什么以及为什么需要它,请查看 adding geoqueries to Firestore 上的 Firebase 文档(它与您使用的库不同,但方法相同)和几年前我在adding geoqueries to Firestore 上的一次演讲中的视频。

【讨论】:

以上是关于使用来自firestore数据库的geoflutterfire查询结果,使用flutter应用程序返回null或啥都没有,但语法没有错误的主要内容,如果未能解决你的问题,请参考以下文章

Flutter:延迟加载来自 Firestore 的数据

Flutter:使用来自 Firestore 的多集合流创建动态更新的 DataTable

如何在结构中正确显示来自 Firestore 的数据?

使用来自firestore数据库的geoflutterfire查询结果,使用flutter应用程序返回null或啥都没有,但语法没有错误

如何使用来自 GCP Firestore 的大量数据在 Vue.js 数据表中工作

如何将默认反应上下文值设置为来自 Firestore 的数据?