Не удалось получить действительный токен доступа Google OAuth2 с помощью firebase-admin

В настоящее время я не могу читать или записывать данные с помощью firebase-admin в nodejs.

Без включения ведения журнала он просто зависает навсегда, никогда не возвращает ошибку и не завершается.

Однако при включенном ведении журнала он дает следующее (он продолжает повторять попытки по сокращающемуся графику - но с тем же результатом):

p:0: Browser went online.
0: set {"path":"/server/saving-data/fireblog/users","value":{"alanisawesome":{"date_of_birth":"June 23, 1912","full_name":"Alan Turing"},"gracehop":{"date_of_birth":"December 9, 1906","full_name":"Grace Hopper"}},"zg":null}
p:0: Buffering put: /server/saving-data/fireblog/users
p:0: Making a connection attempt
p:0: Failed to get token: Error: Credential implementation provided to initializeApp() via the "credential" property failed to fetch a valid Google OAuth2 access token with the following error: "unable to verify the first certificate".
p:0: data client disconnected
p:0: Trying to reconnect in 0ms
0: onDisconnectEvents

Когда я улавливаю https-запрос (внутренний для firebase-admin), я получаю следующее:

{ Error: unable to verify the first certificate
    at TLSSocket.<anonymous> (_tls_wrap.js:1094:38)
    at emitNone (events.js:86:13)
    at TLSSocket.emit (events.js:188:7)
    at TLSSocket._finishInit (_tls_wrap.js:616:8)
    at TLSWrap.ssl.onhandshakedone (_tls_wrap.js:446:38) code: 'UNABLE_TO_VERIFY_LEAF_SIGNATURE' }

Я попытался сгенерировать новый закрытый ключ из консоли, но он продолжает возвращать ту же ошибку. Я также добавил require ('ssl-root-cas'). Inject (), как предлагалось в другом месте, но это не меняет поведения. Также передача фактического объекта json в функцию admin.credential.cert не меняет поведения.

Сейчас я нахожусь на узле v7.7.4.

Вот код, который вызывает ошибку:

const admin = require('firebase-admin');

admin.initializeApp({
  credential: admin.credential.cert('./serviceAccountKey.json'),
  databaseURL: 'https://mtg-decks-bc92d.firebaseio.com'
});

// turn on logging
admin.database.enableLogging(true);

const db = admin.database();
const ref = db.ref('server/saving-data/fireblog');

const usersRef = ref.child('users');
usersRef.set({
  alanisawesome: {
    date_of_birth: 'June 23, 1912',
    full_name: 'Alan Turing'
  },
  gracehop: {
    date_of_birth: 'December 9, 1906',
    full_name: 'Grace Hopper'
  }
}).then(() => {
  console.log('set complete');
});

person RogerHamilton    schedule 09.04.2017    source источник
comment
Удалось ли вам это понять? Пару дней назад мой сервер работал нормально, и без обновления кода я столкнулся с этой проблемой.   -  person arpwal    schedule 30.08.2017


Ответы (2)



Я получил эту ошибку, потому что часовой пояс моих локальных машин был установлен вручную, поэтому срок действия токена и т. Д. Был отключен.

person Community    schedule 26.12.2018