如何以正确的方式在Firebase Cloud-Functions中实现GeoFirestore?

时间:2019-01-26 11:14:29

标签: firebase google-cloud-functions geofirestore

我尝试将GeoFirestore实施到我的Firebase云功能。

当我尝试部署代码时,会发生此错误“ TypeError:GeoFire不是构造函数”。

我将index.js文件用于功能。

我试图在我的函数中实现GeoFire参考,但这也无济于事...

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

PS 。:我为此帖子使用XXXXXXX更改了Firebase DatabaseURL。

我在网上搜索并找到堆栈溢出的答案,但是没有一个答案可以解决我的问题。

我的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"
},

1 个答案:

答案 0 :(得分:3)

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

import

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

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

希望这会有所帮助。