我已经创建了一个可调用的Cloud Function,以从Firebase读取数据并将结果发送回客户端,但是,只有“ null”返回给客户端。
exports.user_get = functions.https.onCall((data, context) => {
if (context.auth && data) {
return admin.firestore().doc("users/" + context.auth.uid).get()
.then(function (doc) {
return { doc.data() };
})
.catch(function (error) {
console.log(error);
return error;
})
} return
});
答案 0 :(得分:1)
我刚刚转载了您的案例,该案例是通过Cloud Function与Firestore数据库连接并检索数据的。如我所见,当您使用"users/" + context.auth.uid
时,您试图以错误的方式访问该字段,该方法找不到该字段,因此该字段返回空值。
我只是按照这份Quickstart using a server client library文档来填充Firestore数据库,并使用node.js从中获取数据。
此后,我遵循此Deploying from GCP Console文档,以使用以下功能部署HTTP触发的Cloud Function
exports.helloWorld = (req, res) => {
firestore.collection('users').get()
.then((snapshot) => {
snapshot.forEach((doc) => {
console.log(doc.id, '=>', doc.data().born);
let ans = {
date : doc.data().born
};
res.status(200).send(ans);
});
})
这将返回所需的字段。
您可以看一下我整个example code here