javascript - 使用云功能(使用 react.js)在 Firestore 文档上编写
问题描述
这是我的云功能代码。
const admin = require('firebase-admin');
const functions = require('firebase-functions');
admin.initializeApp();
const db = admin.firestore();
exports.dbTest = functions.https.onCall((request, response) => {
var doc = db.collection('users').doc('TEST');
var data = doc.set({
name:'TEST'
});
});
这是客户端代码。我正在使用 react.js 前端。
var dbTest = firebase.functions().httpsCallable('dbTest');
dbTest()
.then(res=> {
console.log(JSON.stringify(res));
})
.catch(err=>{
console.log(err);
});
简单地说,它不起作用。Log 中有一条记录表明该函数执行得很好。但我找不到任何新文件。我希望我能得到一些帮助。
解决方案
你必须在你的云函数中返回一个承诺。
这应该有效:
const admin = require('firebase-admin');
const functions = require('firebase-functions');
admin.initializeApp();
const db = admin.firestore();
exports.dbTest = functions.https.onCall((request, response) => {
var doc = db.collection('users').doc('TEST');
return doc
.set({
name: 'TEST'
})
.then(() => {
return { result: 'document updated' };
})
.catch(function(error) {
console.error("Error writing document: ", error);
throw new functions.https.HttpsError('unknown', 'Error writing document:', error); //Adapt as you wish, see https://firebase.google.com/docs/reference/functions/functions.https.HttpsError
});
});
最后,我建议您观看 Firebase 视频系列中关于“JavaScript Promises”的 3 个视频:https ://firebase.google.com/docs/functions/video-series/
推荐阅读
- itext7 - itext5 中的 PdfGraphics2D 类在 itext7 中的等效类是什么
- contiki - Contiki 的时间戳
- c# - double num = Math.Round(double.Parse(value), 4); 此行导致错误
- python-3.x - 使用树莓派读取 MFRD522 数据并通过 http(python3) 发送此数据
- php - 如何取消设置数组中的许多值 [php]
- apache-spark - 对数据帧火花执行操作时出现空指针异常
- php - 在 Rails 中加密,在 Laravel 中解密
- java - WireMock 请求不匹配
- ruby-on-rails - 如何从 lp_select gem (lpsolve) 获取解决方案报告
- haskell - 无法使用 IO Monad 打印到文件