Неявная инициализация firebase в приложении React - PullRequest
0 голосов
/ 02 мая 2019

Я пытаюсь объединить неявную инициализацию для Firebase и приложения React (созданного с помощью CRA), поскольку это хороший способ убедиться, что мне не нужно слишком беспокоиться о настройке для различныхокружения.

Однако при запуске приложения, если я пытаюсь использовать объект firebase, я получаю сообщение об ошибке Firebase: No Firebase App '[DEFAULT]' has been created - call Firebase App.initializeApp() (app/no-app).

В моем индексном файле есть файлы Firebase, включенные дофайлы приложения, и если я поставлю точку останова в init, предоставленном Firebase, то я вижу, что он инициализирует объект firebase.

enter image description here

Компонент App входит в комплект поставки CRA:

mport React from 'react';
import firebase from 'firebase/app'
import 'firebase/functions'

import logo from './logo.svg';
import './App.css';

const App: React.FC = () => {

  const helloWorld = firebase.functions().httpsCallable('helloWorld')
  helloWorld().then(result => console.log({ result }))

  return (
  ...

Есть указатели?

1 Ответ

0 голосов
/ 02 мая 2019

Я делал это неправильно.Сценарий init вызывался правильно и создавал глобальный объект firebase, который я затем переопределял при импорте.

Я удалил два импорта в своем компоненте и изменил объявление helloWorld:

const helloWorld = window.firebase.functions().httpsCallable('helloWorld')

Затем набранный текст linter жалуется на то, что firebase не существует в Window, поэтому я добавил global.d.ts файл, содержащий это:

interface Window {
  firebase: any
}

В какой-то момент,Я подберу правильный тип для него, но это помогло мне справиться с проблемой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...