ошибка передачи пустых учетных данных в эмулятор firestore - PullRequest
0 голосов
/ 23 февраля 2020

Я пытаюсь вставить некоторые примеры данных в мою локальную базу данных эмулятора пожарного депо. Я адаптировал пример из этого выпуска github

Мой код выглядит так:

const {Firestore} = require('@google-cloud/firestore');
const {credentials} = require('grpc');

const db = new Firestore({
  projectId: 'my-project-id',
  servicePath: 'localhost',
  port: 8100,
  sslCreds: credentials.createInsecure(),
  customHeaders: {
    "Authorization": "Bearer owner"
  }
});

async function load_data() {
  await db.collection("mycollection").doc("myid").set({ foo: "test" })
}
load_data();

Но я получаю сообщение об ошибке

это .credentials._getCallCredentials не является функцией

Проверено на узлах 10 и 12 с одинаковой ошибкой.

Версии библиотеки:

  • @ google-cloud / firestore 3.5.1
  • grp c 1.24.2

Есть ли лучший подход к записи в локальный эмулируемый firestore? Или что-то не так с моим кодом?

1 Ответ

1 голос
/ 24 февраля 2020

Проблема здесь в том, что вы пытаетесь использовать две разные реализации gRP C вместе. Внутренне firestore использует @grpc/grpc-js, так что это то, что вы должны использовать. Вам нужно только изменить вторую строку на const {credentials} = require('@grpc/grpc-js'); и переключить зависимость на эту библиотеку.

...