javascript - 使用 Javascript 和 Nodejs 从 JSON 文件向 Firebase 推送/设置数据
问题描述
我想将数据上传到 Firebase 的实时数据库。此信息与用户 ID 相关。我已经在 JSON 文件中下载了这些相关的用户信息。我可以使用 JavaScript 轻松地将这些信息读入 Node.js 命令提示符。
我也知道如何使用 JavaScript 推送和设置数据。
我的问题似乎是在相同的 JavaScript 代码中包括从文件操作读取和写入到 firebase 操作。
为了测试这一点,我编写了一个非常基本的 JavaScript 程序,该程序使用回调函数,因此我可以确保它在开始写入之前完成从文件中读取,但即使编写注释掉的代码也会使整个 JavaScript 程序无法工作。(我知道我不需要前两行,但我尝试了不同的东西,我想同时展示它们)
function GetAllData(callback) {
//var userData = require('./save_file.json');
// var fs = require('fs')
// var obj = JSON.parse(fs.readFileSync('save_file.json').toString())
var a=2;
if (typeof callback === 'function') {
callback();
}
}
function PushData() {
var config = {
apiKey: ,
authDomain: ,
databaseURL: ,
projectId: ,
storageBucket: ,
messagingSenderId:
};
// Initialize your Firebase app
firebase.initializeApp(config);
// Reference to your entire Firebase database
var myFirebase = firebase.database().ref();
var recommendations = myFirebase.child("recommendations");
setTimeout(pushStuff(), 500);
function pushStuff(){
recommendations.set({
"title": "nn"
});
}
};
//}
GetAllData(PushData);
如果我删除第一部分中注释掉的代码,“nn”就写得很好。在这一点上,我只想能够在相同的代码中读取和写入:(
解决方案
正如您在问题中提到的,对 Firebase 数据库的读取和写入调用是异步的。
正如您在此处或此处看到的,它们从 Firebase 文档返回承诺。
因此,您必须链接这些承诺,例如,在read后跟write的情况下:
return firebase.database().ref('/users/' + userId).once('value')
.then(snapshot => {
var username = (snapshot.val() && snapshot.val().username) || 'Anonymous';
return firebase.database().ref(....).set({ username: username });
})
.then(() => {
console.log('Operation succeeded');
})
.catch(error => {
console.log('Operation failed');
});
另外,看看这篇SO帖子Reading a nodejs promise with firebase
推荐阅读
- c# - 无法使用 amqmdnetstd.dll 连接到 MQ
- javascript - AWS ECS 上的 Vue docker 部署最初使用 js 和 css 文件作为 html 加载
- mongodb - 使用 Spring Data Mongo 的 ObjectId 问题的 Facet + 聚合查询
- pandas - openpyxl使用后无法打开excel文件
- python - 任务卡在 Celery 队列中
- node.js - 续集关联不起作用,如何解决?
- typescript - 如何使用 angular 2+ 使用 get 方法传递身体?
- mongodb - 使用关联的集合字段进行查找和排序的 MongoDB 聚合正在减慢查询速度
- python - 无法在 python 中与 Flask 连接
- javascript - 为特定子组件反应 propTypes