Я пытаюсь синхронизировать c данные из моего Firestore на мои листы Google.
Я создал учетную запись service и сохранил учетные данные в JSON файле
Папка функций успешно однако развертывает функцию с ошибками.
Ниже приведен мой индекс. js
var functions = require('firebase-functions')
var admin = require('firebase-admin')
var { google } = require('googleapis')
var sheets = google.sheets('v4')
admin.initializeApp()
var spreadsheetId = '...'
var serviceAccount = require('./serviceAccount.json')
var jwtClient = new google.auth.JWT({
email: serviceAccount.client_email,
keys: serviceAccount.private_key,
scopes: ['https://www.googleapis.com/auth/spreadsheets'],
})
var jwtAuthPromise = jwtClient.authorize()
exports.testFunction = functions.firestore.document('/scores/{docID}').onCreate(async snap => {
if (snap.exists) {
var obj = JSON.parse(JSON.stringify(snap.data()))
await jwtAuthPromise
sheets.spreadsheets.values.append(
{
auth: jwtClient,
spreadsheetId: spreadsheetId,
range: 'new!A2',
valueInputOption: 'RAW',
requestBody: {
values: [[obj['Player'], obj['Score']]],
},
},
(err, result) => {
if (err) {
// Handle error
console.log(err)
} else {
console.log('%d cells updated.', result.updatedCells)
}
},
)
}
})
Облачная функция срабатывает, когда какой-либо документ добавляется в мою коллекцию scores
, данные затем добавляется в мой лист Google.
Когда я вручную обновляю мой Firestore, эти ошибки в моем журнале ошибок
testFunction Function execution took 2620 ms, finished with status: 'error'
testFunction Error: function crashed out of request scope Function invocation was interrupted.
testFunction
Error: No key or keyFile set. at GoogleToken.<anonymous> (/srv/node_modules/googleapis/node_modules/gtoken/build/src/index.js:115:23) at Generator.next (<anonymous>) at /srv/node_modules/googleapis/node_modules/gtoken/build/src/index.js:13:71 at new Promise (<anonymous>) at __awaiter (/srv/node_modules/googleapis/node_modules/gtoken/build/src/index.js:9:12) at GoogleToken.getTokenAsync (/srv/node_modules/googleapis/node_modules/gtoken/build/src/index.js:110:16) at GoogleToken.getToken (/srv/node_modules/googleapis/node_modules/gtoken/build/src/index.js:64:21) at JWT.<anonymous> (/srv/node_modules/googleapis/node_modules/google-auth-library/build/src/auth/jwtclient.js:144:40) at Generator.next (<anonymous>) at /srv/node_modules/googleapis/node_modules/google-auth-library/build/src/auth/jwtclient.js:22:71
testFunction
Error: No key or keyFile set.
at GoogleToken.<anonymous> (/srv/node_modules/googleapis/node_modules/gtoken/build/src/index.js:115:23)
at Generator.next (<anonymous>)
at /srv/node_modules/googleapis/node_modules/gtoken/build/src/index.js:13:71
at new Promise (<anonymous>)
at __awaiter (/srv/node_modules/googleapis/node_modules/gtoken/build/src/index.js:9:12)
at GoogleToken.getTokenAsync (/srv/node_modules/googleapis/node_modules/gtoken/build/src/index.js:110:16)
at GoogleToken.getToken (/srv/node_modules/googleapis/node_modules/gtoken/build/src/index.js:64:21)
at JWT.<anonymous> (/srv/node_modules/googleapis/node_modules/google-auth-library/build/src/auth/jwtclient.js:144:40)
at Generator.next (<anonymous>)
at /srv/node_modules/googleapis/node_modules/google-auth-library/build/src/auth/jwtclient.js:22:71
testFunction Unhandled rejection
testFunction
Billing account not configured. External network is not accessible and quotas are severely limited. Configure billing account to remove these restrictions
testFunction
Function execution started