如何从 angularfire2 创建 GeoPoint?

How to create GeoPoint from angularfire2?

我正在尝试使用 AngularFirestore 创建新的 GeoPoint,但我一直收到一条错误消息,指出该方法不可用。除了 AngularFire?

之外,我如何在不导入整个 firebase npm 模块的情况下执行此操作?
    import { Component, OnInit } from "@angular/core";
    import {AngularFirestore, AngularFirestoreCollection} from "angularfire2/firestore";
    @Component({
      selector: "app-firebase-menu-bar",
      templateUrl: "./firebase-menu-bar.component.html",
      styleUrls: ["./firebase-menu-bar.component.css"]
    })
    export class FirebaseMenuBarComponent {
      private itemsCollection: AngularFirestoreCollection<any>;
      private AngularFirestoreCollection;
      private draftCollection;
      private productionCollection;
      constructor(private db: AngularFirestore) {
        // this.production = db.collection('/production').snapshotChanges();
        this.db.firestore.GeoPoint(40, 100);
      }
    }

您必须使用本机 firebase/firestore 模块而不是 angularfire 模块。 你不应该害怕导入 firebase(通过 'firebase/app',因为它在 AngularFire 存储库中被推荐),因为 angularfire 只是它的一个包装器。

这是创建地理点的 Firestore API 参考:https://firebase.google.com/docs/reference/js/firebase.firestore.GeoPoint

导入:

import {AngularFirestore} from 'angularfire2/firestore'
import * as firebase from 'firebase/app'

地理点创建和保存:

const locationData = new firebase.firestore.GeoPoint(40, 100)
this.db.collection('foo').doc('whateverId').udpate({location: locationData})

从 5 版本开始

import { firestore } from 'firebase/firestore';
...
new firestore.GeoPoint ...

来自https://github.com/angular/angularfire2/issues/1604