44

在数据库 UI 中,我可以创建一个类型为geopoint. 提供值后,它看起来像这样:

location: [1° N, 1° E]

我正在尝试通过客户端 SDK(Web)将其保存到数据库中。根据 Twitter 反馈,我尝试了 GeoJSON、Coords Array 和 Coords Object:

location: [1, 2];
location: {
    latitude: 1,
    longitude: 2,
};
location: {
    "type": "Feature",
    "geometry": {
        "type": "Point",
        "coordinates": [125.6, 10.1]
    }
}

这些都没有导致数据库中的地理点类型。它们只是保存为对象/数组。

如何通过 Web SDK 在 Firebase Cloud Firestore 中保存 GeoPoint?

4

5 回答 5

96

Firestore SDK 包含一个GeoPoint class,因此您必须像这样保存位置:

{
  location: new firebase.firestore.GeoPoint(latitude, longitude)
}
于 2017-10-06T11:17:48.143 回答
7

我努力寻找正确的导入/要求。这对我有用!

const firebaseAdmin = require('firebase-admin');
//other code ....

//assigning value to myLocation attribute
let newObject = {
    otherAttribute:"otherAttributeValue",
    myLocation: new firebaseAdmin.firestore.GeoPoint(latitude,longitude)
}
于 2019-03-19T05:01:52.233 回答
5

只需使用:

import 'package:cloud_firestore/cloud_firestore.dart';
{
  location:GeoPoint(latitude, longitude)
}
于 2019-01-03T21:33:44.423 回答
0

对于使用“google/cloud-firestore”包的 PHP

你必须使用这个类Google\Cloud\Core\GeoPoint

例子:

<?php

$geoPoint = new \Google\Cloud\Core\GeoPoint($latitude , $longitude);
$data = ['geopoint' => $geoPoint];
于 2020-10-02T12:44:45.800 回答
0
 GeoFirePoint geoFirePoint = geo.point(latitude: lat, longitude: lng);
    _firestore
        .collection('locations')
        .add({'name': 'random name', 'position': geoFirePoint.data}).then((_) {
      print('added ${geoFirePoint.hash} successfully');
    });
于 2021-05-13T05:11:14.170 回答