sai*_*aif 6 json firebase firebase-realtime-database
我需要使用Firebase控制台的"导入JSON"实用程序上传大量数据.但我无法为每一行启用自动生成密钥,如-Kop90 .... 但相反,它创建了0,1 ..键.
这是我的样本数据
[
{"date":1448323200,"description":"test data1","amount":1273},
{"date":1448323200,"description":"25mm pipes","amount":2662}
]
Run Code Online (Sandbox Code Playgroud)
我想生成这样的东西
我也遇到了和你类似的问题
我最终找到了一个使用 JS 和 Node 的 firestore 的好解决方案:https://www.youtube.com/watch? v=Qg2_VFFcAI8&ab_channel=RetroPortalStudio
但由于我需要它用于实时数据库,我只是稍微修改了一下以满足我的需求:
先决条件:
脚步:
注意:下面的代码中唯一缺少的是 firebaseConfig obj,您可以按照本指南获取此 obj:https://support.google.com/firebase/answer/7015592#zippy=%2Cin-this-article
var firebase = require("firebase/app");
require("firebase/database");
const firebaseConfig = {
// your config details...
};
firebase.initializeApp(firebaseConfig);
const database = firebase.database();
// File directory details:
const path = require("path");
const fs = require("fs");
const directoryPath = path.join(__dirname, "files");
fs.readdir(directoryPath, function(err, files) {
if (err) {
return console.log("Unable to scan directory: " + err);
}
files.forEach(function(file) {
var lastDotIndex = file.lastIndexOf(".");
var items = require("./files/" + file);
var listRef = database.ref(`${file.substring(0, lastDotIndex)}/`);
items.forEach(function(obj) {
var postRef = listRef.push();
postRef.set(obj)
.then(function(docRef) {
console.log("Document written");
})
.catch(function(error) {
console.error("Error adding document: ", error);
});
});
});
});Run Code Online (Sandbox Code Playgroud)
node uploader.jsRun Code Online (Sandbox Code Playgroud)
运行该操作后,每个文件都成为一个集合,每个文件的所有内容都以唯一的pushId列出:
| 归档时间: |
|
| 查看次数: |
1077 次 |
| 最近记录: |