如何使用Node JS在Cloud Firestore中导入收集和嵌套收集数据?

维杰·拉胡尔(Vijay Rahul)

如何使用Node JS在Cloud Firestore中导入收集和嵌套收集数据?

我使用此代码从json文件导入到Cloud Firesore数据库,但仅在集合数据上导入

const admin = require('firebase-admin');
const serviceAccount = require("./servicekey.json");
const data = require("./data.json");
admin.initializeApp({
    credential: admin.credential.cert(serviceAccount),
    databaseURL: "database-url";
});
data && Object.keys(data).forEach(key => {
    const nestedContent = data[key];

    if (typeof nestedContent === "object") {
        Object.keys(nestedContent).forEach(docTitle => {
            admin.firestore()
                .collection(key)
                .doc(docTitle)
                .set(nestedContent[docTitle])
                .then((res) => {
                    console.log("Document successfully written!",res);
                })
                .catch((error) => {
                    console.error("Error writing document: ", error);
                });
        });
    }
});

我的json文件格式此文件可以具有collecion和subcollectiondata或嵌套的collection数据

{
     "messages2": {
     "1585135109814test": {
         "Ref_Chat_Type": 1,
         "Last_Content_Time": "1585135492165",
         "Member_Ids": ["xxx", "yyy"],
         "AdminUsers": ["yyy"],
         "Group_Desc": "Ttt",
         "Members": [{
             "User_Profile_Pic": null,
             "User_Id": "xxx",
             "User_Name": "vvv"
         }, {
             "User_Name": "sss",
             "User_Profile_Pic": "",
             "User_Id": "yyy"
         }, {
             "User_Name": "rrr",
             "User_Profile_Pic": "",
             "User_Id": "zzz"
         }],
         "Last_Content": "vhh",
         "Last_Content_From_Id": "yyy",
         "Group_Name": "Test",
         "Group_Id": "1585135109814test",
         "Last_Content_From_Username": "vvv",
         "Group_Pic": "",
         "subCollection": {
             "messages2/1585135109814test/1585135109814test": {
                 "0NBKTa2Py9HvRK0yNxLa": {
                     "Ref_Content_type": 1,
                     "Content_Timestamp": 1588673106,
                     "From_Id": "xxx",
                     "Content_Id": "0NBKTa2Py9HvRK0yNxLa",
                     "Group_Id": "1585135109814test",
                     "From_User_Profile_Pic": "",
                     "Content": "55",
                     "Content_Read_By": null,
                     "From_Username": "vvv"
                 }

         }
        }
    }
}
 }

我使用批处理概念,此代码出现错误

C:\ xampp \ htdocs \ task>节点importmain.js

错误:

C:\ xampp \ htdocs \ task \ node_modules \ firebase-admin \ lib \ firebase-namespace.js:101抛出新的error_1.FirebaseAppError(error_1.AppErrorCodes.NO_APP,errorMessage); ^

FirebaseAppError:默认的Firebase应用程序不存在。使用任何Firebase服务之前,请确保您调用initializeApp()。在FirebaseAppError.PrefixedFirebaseError [作为构造函数](C:\ xampp \ htdocs \ task \ node_modules [4mfirebase-admin [24m \ lib \ utils \ error.js:42:28) xampp \ htdocs \ task \ node_modules [4mfirebase-admin [24m \ lib \ utils \ error.js:88:28)在新的FirebaseAppError(C:\ xampp \ htdocs \ task \ node_modules [4mfirebase-admin [24m \ lib \ utils FirebaseNamespaceInternals.app(C:\ xampp \ htdocs \ task \ node_modules [4mfirebase-admin [24m \ lib \ firebase-namespace.js:101:19))中的\ error.js:122:28)(C: \ xampp \ htdocs \ task \ node_modules [4mfirebase-admin [24m \ lib \ firebase-namespace.js:402:30)在FirebaseNamespace.ensureApp(C:\ xampp \ htdocs \ task \ node_modules [4mfirebase-admin [24m \ lib \ firebase-namespace.js:418:24)在FirebaseNamespace.fn(C:\ xampp \ htdocs \ task \ node_modules [4mfirebase-admin [24m \ lib \ firebase-namespace.js:327:30)。(C:\ xampp \ htdocs \ task \ importmain.js:4:16)[90m at Module._compile(internal / modules / cjs / loader.js:776:30)[39m [90m at Object.Module._extensions。 .js(内部/模块/cjs/loader.js:787:10)[39m {errorInfo:{代码:[32m'app / no-app'[39m,消息:[32m']默认Firebase应用不存在。使用任何Firebase服务之前,请确保先调用initializeApp()。'[39m},代码前缀:[32m'app'[39m} _compile(internal / modules / cjs / loader.js:776:30)[39m [90m at Object.Module._extensions..js(internal / modules / cjs / loader.js:787:10)[39m {errorInfo:{代码:[32m'app / no-app'[39m,消息:[32m']默认的Firebase应用程序不存在。使用任何Firebase服务之前,请确保先调用initializeApp()。'[39m},代码前缀:[32m'app'[39m} _compile(internal / modules / cjs / loader.js:776:30)[39m [90m at Object.Module._extensions..js(internal / modules / cjs / loader.js:787:10)[39m {errorInfo:{代码:[32m'app / no-app'[39m,消息:[32m']默认的Firebase应用程序不存在。使用任何Firebase服务之前,请确保先调用initializeApp()。'[39m},代码前缀:[32m'app'[39m}

佐沃恩

问题在于的初始化firebase-admin

根据文档,正确的语法如下:

const functions = require('firebase-functions');
const admin = require('firebase-admin');
admin.initializeApp();

您应该admin.initializeApp()不带任何参数调用

请尝试一下,让我知道它是否适合您。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用Firestore文档和收集数据

Flutter:如何使用cloud_firestore从文档中收集数据?

如何使用Node JS在Cloud Firestore中导出动态嵌套集合数据?

Firestore:使用和不使用子收集数据来获取收集

如何从嵌套的迭代器收集数据?

将.groupBy与Firestore收集数据一起使用

使用Foreach收集数据

使用cheerio收集数据

使用 Javascript 收集数据

Node js任务,收集数据,服务Web以及从Beaglebone发送数据

Groovy如何使用groupby收集数据

如何使用来自 Complex JSON Webhook 的 Node JS Cloud Function 写入 Cloud Firestore?

如何使用功能过滤Firestore收集数据(用于位置距离过滤)

如何从Jquery Ajax响应HTML收集收集数据?

如何从多个模式收集数据?-领域

使用硒从表中收集数据

使用Scrapy从表中收集数据

使用mail()函数从php收集数据

使用 bigquery 从 GDELT 收集数据

如何使用node.js以指定的顺序收集URL的内容

如何映射使用 JS fetch API 和 SWR 收集的嵌套 JSON 属性

如何从表格列中收集数据并将其导入div?

如何将来自firestore的收集数据存储到列表中?

如何使用for循环迭代url索引以收集数据

如何使用JavaScript刮取JSON页面并收集数据

如何使用selenium geckodriver收集数据python

如何使用流和协程在循环内收集数据

使用 Selenium 和 Python 在网站页面上迭代和收集数据

如何使用Node.js更改Google Cloud Storage中文件的元数据