我正在將電子表格中的資料與 firebase 集合進行比較。當資料相等時,它會帶來答案。如何將此答案放入另一個谷歌電子表格?
我正在嘗試這種方式,但我無法在作業表中輸入值。
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()
module.exports.readAndUpdateAdministrativeSheet = functions.https.onRequest(async (request, response) => {
// =========================== AUTENTICA??O FIREBASE ===================================
const jwtClient = new google.auth.JWT({
email: serviceAccount.client_email,
key: serviceAccount.private_key,
scopes: ['https://www.googleapis.com/auth/spreadsheets']
})
await jwtClient.authorize()
// ================= CONEX?O COM A PLANILHA CRIA??O DE FILTROS =========================
const { data } = await sheets.spreadsheets.values.get({
auth: jwtClient,
spreadsheetId: 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX',
range: `Listagem de pagamento!A2:X6`,
})
// ========= CRIA??O DE BANCO DE DADOS DA COLE??O LISTAGEM DE PAGAMENTO ================
const generateDuplicities = data.values!.map(async row => {
const [idade, nome, cpf, cpf_x, numeroRequerimento, arbitramentoHonorários,
valorArbitrado, valorDeferido, valorComplementar, status, resultado, codigoBanco,
banco, agencia, conta, dataDoRequerimento, dataRequerimento, dataStatus,
comarca, vara, ato, assistidos, email, telefone] = row
firestore.collection("Listagem de pagamento").doc(numeroRequerimento).set({
idade, nome, cpf, cpf_x, numeroRequerimento, arbitramentoHonorários,
valorArbitrado, valorDeferido, valorComplementar, status, resultado, codigoBanco,
banco, agencia, conta, dataDoRequerimento, dataRequerimento, dataStatus, comarca, vara, ato,
assistidos, email, telefone
})
const resultduplicitiesWithJudicialCharges = firestore.collection("Processos judiciais").where("documentosDosautores", "==", cpf)
const duplicitiesWithJudicialCharges = new Array()
resultduplicitiesWithJudicialCharges.get().then((querySnapshot) => {
querySnapshot.forEach((parentDoc) => {
//functions.logger.log(parentDoc.id, " => ", parentDoc.data())
parentDoc.ref.collection("fee-arbitrations - Base de Execu??o").where('arbitramentoDeHonoráriosBE', '==', arbitramentoHonorários).get().then((querySnapshot) => {
querySnapshot.forEach((childDoc) => {
duplicitiesWithJudicialCharges.push(`${'arbitramentoHonorários'}: ${arbitramentoHonorários}`, `${'nome'}: ${nome}`, `${'processoBE'}: ${childDoc.data().processoBE}`)
functions.logger.log(duplicitiesWithJudicialCharges)
console.log(duplicitiesWithJudicialCharges)
const updateOptions = {
spreadsheetId: 'YYYYYYYYYYYYYYYYY',
range: 'grpr!A12', // Isso responde uma pergunta que fiz no STACKOVERFLOW
valueInputOption: 'USER_ENTERED',
resource: { values: duplicitiesWithJudicialCharges },
}
google.sheets({ version: 'v4'}).spreadsheets.values.update(updateOptions)
})
})
})
})
})
await Promise.all(generateDuplicities)
})
我做錯了什么?
有誰知道我做錯了什么?
uj5u.com熱心網友回復:
在您的腳本中,不包括請求表格 API 的客戶端。我認為,當包含它并且您的值duplicitiesWithJudicialCharges是有效值并且您的服務帳戶具有撰寫電子表格的權限時,您的腳本就可以作業。那么,下面的修改呢?
從:
google.sheets({ version: 'v4'}).spreadsheets.values.update(updateOptions)
到:
google.sheets({ version: 'v4', auth: jwtClient}).spreadsheets.values.update(updateOptions);
或者,如果你想使用const sheets = google.sheets('v4'),那么下面的修改呢?
從:
const updateOptions = {
spreadsheetId: 'YYYYYYYYYYYYYYYYY',
range: 'grpr!A12', // Isso responde uma pergunta que fiz no STACKOVERFLOW
valueInputOption: 'USER_ENTERED',
resource: { values: duplicitiesWithJudicialCharges },
}
到:
const updateOptions = {
auth: jwtClient,
spreadsheetId: 'YYYYYYYYYYYYYYYYY',
range: 'grpr!A12', // Isso responde uma pergunta que fiz no STACKOVERFLOW
valueInputOption: 'USER_ENTERED',
resource: { values: duplicitiesWithJudicialCharges },
}
筆記:
- 在此修改中,假設您
jwtClient具有寫入spreadsheetId: 'YYYYYYYYYYYYYYYYY',. 請注意這一點。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/481104.html
標籤:节点.js 打字稿 谷歌表格 谷歌云火库 谷歌表格 API
