【问题标题】:How to implement GeoFirestore in Firebase Cloud-Functions the right way?如何以正确的方式在 Firebase Cloud-Functions 中实施 GeoFirestore?
【发布时间】:2019-06-20 00:42:51
【问题描述】:

我尝试将 GeoFirestore 实施到我的 Firebase Cloud-Function。

当我尝试部署我的代码时,会出现此错误“TypeError: GeoFire is not a constructor”。

我将 index.js 文件用于我的函数。

我尝试在我的函数中实现 GeoFire 引用,但这也无济于事......

我尝试了所有方法,但无法解决此问题。 我希望你们能帮助我:)

PS.:我将我的 Firebase DatabaseURL 更改为 XXXXXXX 以获取这篇文章。

我在网络和堆栈溢出中搜索了答案,但没有一个答案能解决我的问题。

我的 index.js 看起来像这样:

const functions = require('firebase-functions');
var admin = require('firebase-admin');
var serviceAccount = require('./serviceAccountKey.json');
var GeoFire = require('geofirestore');

admin.initializeApp({
credential: admin.credential.cert(serviceAccount),
databaseURL: "https://XXXXXXXXX.firebaseio.com"
});

admin.firestore().settings({
timestampsInSnapshots: true
});

const database = admin.firestore();
const Geo = new GeoFire(database.collection('UserLocations'));

我的 package.json 依赖项如下所示:

"dependencies": {
"firebase-admin": "~6.0.0",
"firebase-functions": "^2.1.0",
"geofirestore": "^3.1.0"
},

【问题讨论】:

    标签: firebase google-cloud-functions geofirestore


    【解决方案1】:

    由于您使用的是require 语法而不是import,因此您需要像这样引入单独的类...

    var GeoFirestore = require('geofirestore').GeoFirestore;
    

    此外,geofirestore 实例需要一个 firestore 实例。因此,您不会像在代码中那样传递集合。你想这样做:

    const database = admin.firestore();
    const geofirestore = new GeoFirestore(database);
    const Geo = geofirestore.collection('UserLocations');
    

    希望这会有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-02-21
      • 2019-03-31
      • 2021-11-02
      • 2019-07-26
      • 1970-01-01
      • 2017-12-24
      • 2020-05-05
      • 1970-01-01
      相关资源
      最近更新 更多