0

我想使用这个set(...)功能,但是 Firebase-Log 说这个功能不可用。

Firebase-Cloud-Function 日志:

“TypeError:GeoPostLocations.set 不是 database.collection.doc.collection.doc.set.then.result 中的函数”

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

var GeoFirestore = require('geofirestore').GeoFirestore;
const database = admin.firestore();
const geofirestore = new GeoFirestore(database);
const GeoPostLocations = geofirestore.collection('PostLocations');

在我的函数中,我执行以下代码:

return GeoPostLocations.set("DummyIDForTest", [50.312312312, 5.4302434234]]).then(result => {
        console.log(result);
        return 0;
    }).catch(error => {
        console.log(error);
        return 1;
    });           
4

1 回答 1

1

所以看起来你一直在用 2 的语法编写一些代码geofirestore,但是我们现在在 v3 上,事情应该看起来更像firestore,那么这对你意味着什么?

首先, set 不是集合可用的函数,但它可用于文档,所以你会想要这样做:

return GeoPostLocations.doc('DummyIDForTest').set({
    coordinates: new firebase.firestore.GeoPoint(50.312312312, 5.4302434234)
}).then(result => {
    console.log(result);
    return 0;
}).catch(error => {
    console.log(error);
    return 1;
});

请注意,您必须设置一个对象,而不是数组中的坐标(这不是geofire)。我已经包含了相关文档的链接

于 2019-01-30T20:34:11.193 回答