react-firebaseui StyledFirebaseAuth не компилируется

#reactjs #firebase #firebaseui

#reactjs #firebase #firebaseui

Вопрос:

Я использую react-firebaseui для аутентификации, согласно документации, которую я написал для кода

 import React from "react";
import StyledFirebaseAuth from "react-firebaseui/StyledFirebaseAuth";
import firebase from "firebase";

const firebaseConfig = {
  ...
};
// Initialize Firebase
firebase.initializeApp(firebaseConfig);


// Configure FirebaseUI.
const uiConfig = {
  // Popup signin flow rather than redirect flow.
  signInFlow: "popup",
  // Redirect to /signedIn after sign in is successful. Alternatively you can provide a callbacks.signInSuccess function.
  //   signInSuccessUrl: '/signedIn',
  // We will display Google and Facebook as auth providers.
  signInOptions: [firebase.auth.GoogleAuthProvider.PROVIDER_ID],
};

export const SignInWith = () => (
<>
    <p>Login</p>
    <StyledFirebaseAuth uiConfig={uiConfig} firebaseAuth={firebase.auth()} />
</>
);

  

но я продолжаю получать эту ошибку

./node_modules/firebaseui/dist/esm.js
Ошибка при попытке импорта: ‘app’ не экспортируется из ‘firebase / app’ (импортируется как ‘firebase’).`.

Я попытался импортировать firebase с помощью import firebase from 'firebase/app , но все та же ошибка. Я попытался прокомментировать импорт и тег StyledFirebaseAuth, и это работает, поэтому я уверен, что проблема связана с react-firebaseui. Это мой package.json

 {
  "name": "client",
  "version": "0.1.0",
  "private": true,
  "dependencies": {
    "@material-ui/core": "^4.11.0",
    "@material-ui/icons": "^4.9.1",
    "@reduxjs/toolkit": "^1.4.0",
    "@testing-library/jest-dom": "^4.2.4",
    "@testing-library/react": "^9.5.0",
    "@testing-library/user-event": "^7.2.1",
    "@types/jest": "^24.9.1",
    "@types/node": "^12.19.2",
    "@types/react": "^16.9.54",
    "@types/react-dom": "^16.9.9",
    "@types/react-redux": "^7.1.9",
    "axios": "^0.21.0",
    "firebase": "^8.0.0",
    "react": "^17.0.1",
    "react-dom": "^17.0.1",
    "react-firebaseui": "^4.1.0",
    "react-redux": "^7.2.2",
    "react-router-dom": "^5.2.0",
    "react-scripts": "4.0.0",
    "typescript": "^3.8.3"
  },
  "scripts": {
    "start": "react-scripts start",
    "build": "react-scripts build",
    "test": "react-scripts test",
    "eject": "react-scripts eject"
  },
  "eslintConfig": {
    "extends": "react-app"
  },
  "browserslist": {
    "production": [
      ">0.2%",
      "not dead",
      "not op_mini all"
    ],
    "development": [
      "last 1 chrome version",
      "last 1 firefox version",
      "last 1 safari version"
    ]
  },
  "devDependencies": {
    "@types/react-router-dom": "^5.1.6",
    "babel-plugin-import": "^1.13.1",
    "customize-cra": "^1.0.0",
    "react-app-rewired": "^2.1.6"
  }
}

  

Спасибо за любую помощь.

Комментарии:

1. Пожалуйста, отредактируйте вопрос, чтобы показать ваш package.json. Версии каждой библиотеки имеют значение. Если вы недавно что-то изменили, скажите, что это такое.

2. Я думаю, вам нужно импортировать firebase раньше react-firebase . Вы можете это проверить?

3. @ShubhamVerma Я пытался импортировать firebase до react-firebaseui, но я все равно получил ошибку, импорт такой же, как и в документации.

Ответ №1:

К сожалению, вы обновили свою зависимость «firebase» до 8.0.0, но зависимость «firebaseui» еще не поддерживает ее. Вам придется временно понизить firebase до версии 7.24.0, пока firebaseui и react-firebaseui не поддержат критические изменения в версии 8.0.0.

Комментарии:

1. нет ли другого обхода

Ответ №2:

импорт firebase изменился с версией 9.0.0, теперь доступна совместимость, нет необходимости в понижении, поэтому вы можете использовать папку /compat при импорте,

 import firebase from 'firebase/compat/app'