Android 调用了Firebase函数,但.doc()之后的func方法.set()无效
我正试图通过客户端(Android)调用Firebase函数在Firebase Firestore中创建一个文档 正如文档所述,我们可以在未来的文档上创建一个引用,并在以后的几行中设置信息: 我在客户端上获得了文档ID,但该文档未添加到Firestore,因此“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
'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
”。看见最后请注意,您必须在云函数本身之外进行初始化