Как правильно реализовать GeoFirestore в Firebase Cloud-Functions? - PullRequest
0 голосов
/ 26 января 2019

Я пытаюсь реализовать GeoFirestore для моих облачных функций Firebase.

Когда я пытаюсь развернуть свой код, возникает ошибка «Ошибка типа: GeoFire не является конструктором».

Я использую файл index.js для своих функций.

Я пытался внедрить ссылку GeoFire в мою функцию, но это тоже не поможет ...

Я попробовал все, но я не смог решить эту проблему. Я надеюсь, что вы, ребята, можете помочь мне:)

PS .: Я меняю свою базу данных FirebaseURL на 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"
},

1 Ответ

0 голосов
/ 27 января 2019

, поскольку вы используете синтаксис require вместо import, вам нужно будет ввести отдельные классы, например, так ...

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

Кроме того, экземпляр geofirestore принимает экземпляр firestore.Таким образом, вы не передадите коллекцию, как в своем коде.Вы хотели бы сделать это:

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

Надеюсь, это поможет.

...