使用Firebase Cloud功能访问Geopoint?

时间:2019-01-03 05:39:18

标签: javascript node.js firebase google-cloud-firestore

我在Firestore中有一个名为 posts 的集合,其中包含一个包含 content location 字段的文档。内容是string,位置是Geopoint

使用Firebase Cloud Functions访问数据库时,我可以通过将内容添加到数组并将整个内容JSON.stringfy作为响应来打印出内容。

  db.collection("posts").get().then((snapshot) => {
    snapshot.forEach((doc) => {

        var element = {
          "content": doc.data().content,
        }
        query = query.concat(element);
    });
    res.send(JSON.stringify(query));

但是,如果我尝试使用geopoints进行仿真,我只会得到一个空的响应{}

  db.collection("posts").get().then((snapshot) => {
    snapshot.forEach((doc) => {
        var latitude = doc.data().location.getLatitude();
        var longitude = doc.data().location.getLongitude();

        var element = {
          "latitude": latitude,
          "longitude": longitude,
        }
        query = query.concat(element);
    });
    res.send(JSON.stringify(query));

如何使用Javascript访问Firestore中的Geopoint值,以便我可以对它们执行操作/打印它们?即找到两点之间的距离。

1 个答案:

答案 0 :(得分:1)

我设法通过直接使用doc.data().location.latitude访问纬度/经度字段来解决此问题。