我正在尝试通过客户端(Android)调用Firebase Function在Firebase Firestore中创建文档。
正如文档所述,我们可以在将来的文档上创建参考,并在以后的几行中设置信息: firebase github
我在客户端上获得了文档ID,但是该文档未添加到Firestore中,因此“ set()”不起作用。
怎么了?
awk -F"[=;]" '!/^$/{x+=$3;y+=$3*$5}END{print y/x}' file
});
我希望将数据添加到Firestore。
答案 0 :(得分:1)
以下方法应该起作用:
'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 };
});
});
您必须在异步操作后返回一个Promise,请参阅文档:https://firebase.google.com/docs/functions/callable。 (我还建议您观看Firebase视频系列中名为“学习JavaScript承诺”的3个视频:https://firebase.google.com/docs/functions/video-series/)
此外,请注意,由于Cloud Functions版本1.0“初始化时,您不能再传递functions.config().firebase
”。参见https://firebase.google.com/docs/functions/beta-v1-diff#new_initialization_syntax_for_firebase-admin。最后请注意,您必须在Cloud Function本身之外进行初始化。