gpt4 book ai didi

javascript - 更新 Firebase 中的实时数据库

转载 作者:行者123 更新时间:2023-12-01 02:51:48 26 4
gpt4 key购买 nike

我正在创建一个 API,它可以更新实时数据库 (Firebase) 中的值。使用 ClaudiaJS 创建 API。基本上,API会按年份更新类(class)的学生人数。

我做了什么:

实时数据库 (Firebase)

class
|__2015
| |__numberOfStudent: 50
|__2016
|__numberOfStudent: 60

像这样导出到 JSON:

{
"class": {
"2015": {
"numberOfStudent": 50
},
"2016": {
"numberOfStudent": 60
}
}
}

Javascript 文件 (ClaudiaJS):

var ApiBuilder = require('claudia-api-builder');
api = new ApiBuilder();
module.exports = api;

var admin = require("firebase-admin");

var serviceAccount = require("./xxxxxxx-firebase-adminsdk-nxxxxx.json");

admin.initializeApp({
credential: admin.credential.cert(serviceAccount),
databaseURL: "https://xxxxxx.firebaseio.com"
});

api.post('/addmore/{year}/{number}', function (request) {
var database = admin.database().ref('class');

//Params
var year = request.pathParams.year;
var number = request.pathParams.number;

var ref = year + '/numberOfStudent'; // '2015/numberOfStudent'

database.update({
ref : parseInt(number) // "2015/numberOfStudent" : 60
});

return 'Update successfully';

});

当我在 Postman 中运行 api 时:

http://xxxxapi.com/addmore/2015/55

发生了什么:API 回复“更新成功”,但数据库没有得到任何更新。代码 database.update() 似乎根本不起作用。

非常感谢任何建议

最佳答案

update 调用是异步发生的,因此目前 return 发生在 update 完成之前。

update返回 Promise ,因此请尝试以下操作:

return database.update({ref : parseInt(number)})
.then(() => {
// Each then() should return a value or throw
return 'Update successful';
})
.catch(error => {
// handle the error however you like
console.error(error);
});

关于javascript - 更新 Firebase 中的实时数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46918000/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com