警告:看起来您正在使用Firebase JS SDK的开发版本

eta*_*luz 24 firebase reactjs

我已将Firebase集成到我的React.js应用中:https://firebase.google.com/docs/database/web/start

fire.js:

import firebase from 'firebase'

var config = {
  apiKey: "####",
  authDomain: "#",
  databaseURL: "#",
  projectId: "#",
  storageBucket: "#",
  messagingSenderId: "#"
};
var fire = firebase.initializeApp(config);
export default fire;
Run Code Online (Sandbox Code Playgroud)

App.js:

import fire from './fire';

class App extends Component {
    componentWillMount(){
        let messagesRef = fire.database().ref('messages').orderByKey().limitToLast(100);
    }
}
Run Code Online (Sandbox Code Playgroud)

但现在我在控制台中收到此警告:

看起来您正在使用Firebase JS SDK的开发版本.将Firebase应用程序部署到生产环境时,建议仅导入要使用的各个SDK组件.

对于模块构建,这些可以通过以下方式获得(替换为组件的名称 - 即auth,数据库等):

CommonJS模块:const firebase = require('firebase/app'); 要求( '火力/');

ES模块:从'firebase/app'导入firebase; import'firebase /';

我该如何修复此警告?

我试过(在fire.js中)改变这个:

import firebase from 'firebase'
Run Code Online (Sandbox Code Playgroud)

对此:

import firebase from 'firebase/app'
Run Code Online (Sandbox Code Playgroud)

这导致了这个错误: 在此输入图像描述

eta*_*luz 33

导入firebase的正确方法是这样的:

import firebase from 'firebase/app';
import 'firebase/database'; // If using Firebase database
import 'firebase/storage';  // If using Firebase storage
Run Code Online (Sandbox Code Playgroud)

  • 当我将导入更改为此时警告是否会消失?我已经改变了但仍然收到了警告. (8认同)
  • @vhflat 在我修复了所有项目文件中的导入语句后,警告对我来说消失了。 (2认同)

小智 13

导入Firebase和摆脱警告的正确方法是:

始终以这种方式导入

import firebase from 'firebase/app';
Run Code Online (Sandbox Code Playgroud)

然后根据需要导入每个子模块(每个Firebase服务)

import 'firebase/auth';        // for authentication
import 'firebase/storage';     // for storage
import 'firebase/database';    // for realtime database
import 'firebase/firestore';   // for cloud firestore
import 'firebase/messaging';   // for cloud messaging
import 'firebase/functions';   // for cloud functions
Run Code Online (Sandbox Code Playgroud)

  • @toti08 它为 firebase 的其他子模块添加了导入路径,这对于人们在使用其他 firebase 服务时遇到同样的错误很有用。 (3认同)
  • 怎么样初始化? (2认同)

小智 11

警告信息量很大,并准确地列出了您需要做的事情.在您的情况下,这是告诉您切换导入文件的方式的行:

ES模块:从'firebase/app'导入firebase; import'firebase /';

在您的fire.js文件中尝试更改此:

import firebase from 'firebase'
Run Code Online (Sandbox Code Playgroud)

对此:

import firebase from 'firebase/app'
Run Code Online (Sandbox Code Playgroud)

那应该清除它!

边注:

在我的情况下,我正在使用,firestore所以我有一个额外的导入,我也改变了:

import firestore from 'firebase/firestore'
Run Code Online (Sandbox Code Playgroud)

至:

import 'firebase/firestore'
Run Code Online (Sandbox Code Playgroud)