我正在Firestore中创建一个数据库,我所做的代码如下:
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 )中分离值,并在消防局中创建一个不同的文档吗?
发布于 2022-03-30 18:47:59
arbitramentoDeHonoráriosBE似乎是一个字符串,该值由一个;分隔。如果要为每个值创建文档,则可以尝试以下操作:
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)或者,您也可以使用批写编写文档。
发布于 2022-03-31 14:19:06
使用@Dharmaraj的建议,我找到了这段代码的答案。
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)
})https://stackoverflow.com/questions/71679559
复制相似问题