我正试图按照这里的说明设置使用Firebase UI的Firebase身份验证。
我使用yarn添加了Firebase UI模块。在我的React应用程序的根目录中有一个名为firebase的文件夹。在其中,我有一个带有以下内容的firebase.js文件:
import * as firebase from 'firebase';
import * as firebaseui from 'firebaseui'
const config = {
apiKey: process.env.FIREBASE_API_KEY,
authDomain: process.env.FIREBASE_AUTH_DOMAIN,
databaseURL: process.env.FIREBASE_DATABASE_URL,
projectId: process.env.FIREBASE_PROJECT_ID,
storageBucket: process.env.FIREBASE_STORAGE_BUCKET,
messagingSenderId: process.env.FIREBASE_MESSAGING_SENDER_ID
};
firebase.initializeApp(config);
const database = firebase.database();
firebase.auth().createUserWithEmailAndPassword(email, password).catch(function(error) {
// Handle Errors here.
var errorCode = error.code;
var errorMessage = error.message;
// ...
});
当我尝试检查到这个点是否正确时,我会收到一个控制台错误,上面写着:
firebaseApp.js:339 Uncaught FirebaseError {code: "app/duplicate-service", message: "Firebase: Firebase service named 'auth' already registered (app/duplicate-service).", name: "auth", stack: "auth: Firebase: Firebase service named 'auth' alre…t
我没有在应用程序的其他地方调用firebase,所以我认为这只有在firebaseui已经导入firebase的情况下才会出现错误。 我尝试删除第一个导入语句,但是那样会出现错误,说firebase未定义。
有人知道如何正确设置吗?我看到了这个问题。我可以看到方法上的差异。我尝试使用该问题中使用的配置语句。我仍然遇到相同的问题。
发布此问题后,我在upwork上雇了一个人来为我设置此项。 尽管花费了400美元,我仍然有这个问题。 其他问题已经发布了这个问题,并在angular flare中确定了重复。 我不使用angular。 upwork承包商的设置如下:
const config = {
apiKey: settings.FIREBASE_API_KEY,
authDomain: settings.FIREBASE_AUTH_DOMAIN,
databaseURL: settings.FIREBASE_DB_URL,
projectId: settings.FIREBASE_PROJECT_ID,
storageBucket: settings.FIREBASE_STORAGE_BUCKET,
messagingSenderId: settings.FIREBASE_MESSAGE_ID,
}
if (!firebase.apps.length) {
firebase.initializeApp(config);
}
const database = firebase.database();
const auth = firebase.auth()
export {firebase, auth, database };
这个 firebase.auth 块中有一个额外的 const。我尝试将其删除,但没有任何区别。控制台错误仍然出现。
我上面链接的 SO 问题显示了从库中导入的导入语句。我所有的导入语句都是从我的 firebase.js 文件导入的,它本身导入了 firebase。我想知道这是否是重复?但是,这个导入语句中有 if 语句,所以我不明白为什么会有问题。我确实在我的组件中导入 FirebaseUI,但我无法弄清楚是否以某种方式重复导入了 firebase。
我正在寻找一个与 react 应用程序一起使用的 firebase 配置解决方案。有人知道如何做吗?
firebase
和firebaseui
都是先被导入,然后再进行初始化。参考链接:https://github.com/firebase/firebaseui-web/blob/master/demo/public/index.html - Vishal Sharma