首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何将同一单元格(google )中的值分离,并在消防局中创建不同的文档?

如何将同一单元格(google )中的值分离,并在消防局中创建不同的文档?
EN

Stack Overflow用户
提问于 2022-03-30 14:54:24
回答 2查看 52关注 0票数 1

我正在Firestore中创建一个数据库,我所做的代码如下:

代码语言:javascript
复制
import * as functions from 'firebase-functions'
import { google } from 'googleapis'
import { initializeApp } from 'firebase-admin/app'
const serviceAccount = require('../sheets_updater_service_account.json')
const sheets = google.sheets('v4')
import { getFirestore  } from "firebase-admin/firestore"
initializeApp()
const firestore = getFirestore()
    
exports.processosjudiciais = functions.https.onRequest(async (request, response) => {
    
    const jwtClient = new google.auth.JWT({
        email: serviceAccount.client_email,
        key: serviceAccount.private_key,
        scopes: ['https://www.googleapis.com/auth/spreadsheets']
    })

    await jwtClient.authorize()

    const { data } = await sheets.spreadsheets.values.get({
        auth: jwtClient,
        spreadsheetId: 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX',
        range: `Processos judiciais!A11664:E11667`
    })

    data.values?.forEach(row => {
        const [processoBE, autoresBE, documentosDosautores, arbitramentoDeHonoráriosBE, valorDaCausa] = row
        firestore.collection("Processos judiciais").doc(processoBE).set({
            processoBE, autoresBE, documentosDosautores, valorDaCausa
        })
        firestore.collection("Processos judiciais").doc(processoBE).collection('Arbitramento de Honorários - Base de Execução').doc(arbitramentoDeHonoráriosBE).set({
            arbitramentoDeHonoráriosBE, processoBE
        })
    })
})

我在防火墙中的代码结构如下所示:

与其拥有一个显示多个“仲裁”值的文档,我希望“仲裁”的每个值都是不同的,同时包含“仲裁”和"processBE“。

我用颜色将一幅图像分开,以便于对这一想法进行可视化。

有人知道我如何在同一个单元格(google )中分离值,并在消防局中创建一个不同的文档吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-03-30 18:47:59

arbitramentoDeHonoráriosBE似乎是一个字符串,该值由一个;分隔。如果要为每个值创建文档,则可以尝试以下操作:

代码语言:javascript
复制
const updatePromises = [];

data.values?.forEach(row => {
  const [arbitramentoDeHonoráriosBE, processoBE] = row

  // Get an array of those values separated by ';'
  arbitramentoDeHonoráriosBE.split(";").forEach(v => {
    // Push the set() promises to updatePromises array
    updatePromises.push(
      firestore.collection("Processos judiciais").doc(processoBE).collection('Arbitramento de Honorários - Base de Execução').doc(arbitramentoDeHonoráriosBE).set({
        arbitramentoDeHonoráriosBE: v,
        processoBE
        // add required field in document
      })
    )
  })
})

// run all promises 
return await Promise.all(updatePromises)

或者,您也可以使用批写编写文档。

票数 2
EN

Stack Overflow用户

发布于 2022-03-31 14:19:06

使用@Dharmaraj的建议,我找到了这段代码的答案。

代码语言:javascript
复制
import * as functions from 'firebase-functions'
import { google } from 'googleapis'
import { initializeApp } from 'firebase-admin/app'
const serviceAccount = require('../sheets_updater_service_account.json')
const sheets = google.sheets('v4')
import { getFirestore  } from "firebase-admin/firestore"
initializeApp()
const firestore = getFirestore()

exports.processosjudiciais = functions.https.onRequest(async (request, response): Promise<any> => {

    const jwtClient = new google.auth.JWT({
        email: serviceAccount.client_email,
        key: serviceAccount.private_key,
        scopes: ['https://www.googleapis.com/auth/spreadsheets']
    })

    await jwtClient.authorize()

    const { data } = await sheets.spreadsheets.values.get({
        auth: jwtClient,
        spreadsheetId: 'XXXXXXXXXXXXXXXXXXXXXXXXXXXX',
        range: `Processos judiciais!A11664:E11667`
    })
    
    const updatePromises = new Array()
    data.values?.forEach(row => {
        const [processoBE, autoresBE, documentosDosautores, arbitramentoDeHonoráriosBE, valorDaCausa] = row
        firestore.collection("Processos judiciais").doc(processoBE).set({
            processoBE, autoresBE, documentosDosautores, valorDaCausa
        })
        arbitramentoDeHonoráriosBE.split("; ").forEach((v: string) => {
            updatePromises.push(
                firestore.collection("Processos judiciais").doc(processoBE).collection('fee-arbitrations - Base de Execução').doc(v).set({
                    arbitramentoDeHonoráriosBE: v,
                    processoBE,
                })
            )
        })
    })
    return await Promise.all(updatePromises)
})
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71679559

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档