Node.js 如何使用GeoFirestore从Firestore实际查询数据?

Node.js 如何使用GeoFirestore从Firestore实际查询数据?,node.js,google-cloud-firestore,geofirestore,Node.js,Google Cloud Firestore,Geofirestore,我正在尝试使用GeoFirestore为node.js项目查询Firestore中给定半径内给定点附近的文档。首先,我在数据库中有一个文件,格式如下: 我的查询代码如下: // Create the GeoFirestoreQuery object const geoQuery = geoFirestore.query({ center: new firebase.firestore.GeoPoint(latitute, longitude), radius: 5, q

我正在尝试使用GeoFirestore为node.js项目查询Firestore中给定半径内给定点附近的文档。首先,我在数据库中有一个文件,格式如下:

我的查询代码如下:

// Create the GeoFirestoreQuery object
const geoQuery = geoFirestore.query({
    center: new firebase.firestore.GeoPoint(latitute, longitude),
    radius: 5,
    query: (ref) => ref.where("d.available", "==", true)
});
问题是,我不知道如何从查询中获取文档。我尝试了下面的代码,但根本没有调用它

// Fetch the nearest couriers
const onKeyEnteredRegistiration = geoQuery.on("key_entered", function(key, document, distance) {
    console.log(key);
});

我怎样才能归还文件?我错过了什么?我的查询和数据库结构匹配吗?是否存在任何缺少的字段或问题?或者我应该使用另一个查询而不是“key_entered”?感谢您事先提供的帮助。

我发现了这个问题,是关于数据库结构的。我改变了我的结构,如下所示,现在它的工作完美。

我发现了问题,是关于数据库结构的。我改变了我的结构,如下所示,现在它的工作完美。

我认为问题在于数据结构。我应该使用名为“d”的映射来存储所有字段吗?我应该在字段“g”中存储geopoint或geohash字符串吗?我很困惑。我认为问题在于数据结构。我应该使用名为“d”的映射来存储所有字段吗?我应该在字段“g”中存储geopoint或geohash字符串吗?我很困惑。一旦您执行查询,您是否能够在快照中获取其他字段,如
名称
电话
等?我只能看到文档
id
:SDid你能理解吗?除了我之外,我也无法获取任何信息。一旦您执行查询,您是否能够获取快照中的其他字段,如
名称
电话
等?我只能看到文档
id
:SDid你能理解吗?除了身份证,我也无法得到任何东西