首页 > 解决方案 > 从 Excel 中的客户端应用程序导出 Firestore 数据

问题描述

我正在开发一个在线医生预约移动应用程序。我想在应用程序中添加一个界面,医生可以在其中提取过去的预订数据。有没有什么功能可以让医生将所有过去的预约数据导出到excel中。

只是我想要这个:-->

选择日期范围。提取与该日期相关的所有文件。将这些文档的数据导出到 Excel 表的行中。必填字段作为该 Excel 工作表的列。

有什么服务/方式/技巧可以用来做同样的事情吗

标签: excelfirebasegoogle-cloud-firestore

解决方案


  1. npm i --save exceljs
  2. npm i --save firebase-admin
  3. 创建 index.js 文件

var admin = require("firebase-admin");
const Excel = require('exceljs')

var serviceAccount = require("service-account.json");

admin.initializeApp({
  credential: admin.credential.cert(serviceAccount),
  databaseURL: "https://mind-next.firebaseio.com"
});
const db = admin.firestore();
let workbook = new Excel.Workbook()
let worksheet = workbook.addWorksheet('your export sheet name')
worksheet.columns = [
    
    {header: 'username', key: 'username'},

    {header: 'creationTime', key: 'creationTime'},
    {header: 'email', key: 'email'},
    {header: 'lastSignInTime', key: 'lastSignInTime'},
    {header: 'photoURL', key: 'photoURL'},
    {header: 'providerId', key: 'providerId'}

  ]
  worksheet.getRow(1).font = {bold: true}

async function getData() {
    const snapshot = await db.collection('your export firestore collection').get();
    snapshot.forEach((doc,index) => {
            const rowIndex = index + 2
            let e = doc.data()
            worksheet.addRow({
              ...e,
            })

    });
    workbook.xlsx.writeFile('yourexportfilename.xlsx')

}

getData()

  1. 然后运行节点 index.js

推荐阅读