Android 调用了Firebase函数,但.doc()之后的func方法.set()无效

Android 调用了Firebase函数,但.doc()之后的func方法.set()无效,android,firebase,google-cloud-firestore,google-cloud-functions,Android,Firebase,Google Cloud Firestore,Google Cloud Functions,我正试图通过客户端(Android)调用Firebase函数在Firebase Firestore中创建一个文档 正如文档所述,我们可以在未来的文档上创建一个引用,并在以后的几行中设置信息: 我在客户端上获得了文档ID,但该文档未添加到Firestore,因此“set()”不起作用 有什么不对劲吗 'use strict'; const functions = require('firebase-functions'); const admin = require('firebase-adm

我正试图通过客户端(Android)调用Firebase函数在Firebase Firestore中创建一个文档

正如文档所述,我们可以在未来的文档上创建一个引用,并在以后的几行中设置信息:

我在客户端上获得了文档ID,但该文档未添加到Firestore,因此“set()”不起作用

有什么不对劲吗

'use strict';

const functions = require('firebase-functions');
const admin = require('firebase-admin');

export const createPack = functions.https.onCall((data) => {

admin.initializeApp(functions.config().firebase);
console.log("[CREATE PACK] START");

const db = admin.firestore();
var document = db.collection("packs").doc();

console.log("[CREATE PACK] GOT REF");

document.set({
    title: data.title,
    date: data.date,
    total: data.total,
    activated: 0
});

let packId = document.id;

console.log('[CREATE PACK] PACK ID ' + packId);
console.log('[CREATE PACK] END');

return {
    "id": packId
};
}))


我希望向Firestore添加数据。

以下操作应该可以正常工作:

'use strict';

const functions = require('firebase-functions');
const admin = require('firebase-admin');
admin.initializeApp();


export const createPack = functions.https.onCall((data) => {

    console.log("[CREATE PACK] START");

    const db = admin.firestore();

    var documentRef = db.collection("packs").doc();

    console.log("[CREATE PACK] GOT REF");

    return documentRef.set({
        title: data.title,
        date: data.date,
        total: data.total,
        activated: 0
    })
    .then(() => {
        const packId = documentRef .id;

        console.log('[CREATE PACK] PACK ID ' + packId);
        console.log('[CREATE PACK] END');
        return { "id": packId };
    });

});
您必须在异步操作后返回承诺,请参阅文档:。(我还建议您观看Firebase视频系列中标题为“学习JavaScript承诺”的3个视频:)

另外,请注意,由于云函数版本1.0,“您在初始化时不能再传入
Functions.config().firebase
”。看见最后请注意,您必须在云函数本身之外进行初始化