使用来自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 的多集合流创建动态更新的 DataTable
使用来自firestore数据库的geoflutterfire查询结果,使用flutter应用程序返回null或啥都没有,但语法没有错误