【发布时间】:2021-09-02 12:34:23
【问题描述】:
我想使用 Firebase 身份验证通过 React JS 登录 Facebook。我将 firebaseSample.ts 和 config.ts 文件留在下面。
我在 React JS 端收到错误“TypeError: Cannot read property 'FacebookAuthProvider' of undefined”。这条线正是如此。
- facebook:新的 firebase.auth.FacebookAuthProvider()
在一些帖子中,“import * as firebase from "firebase/app";”我看过更改导入结构的相关文章。
import * as firebase from "firebase";据说是。但是,当我这样做时,我在 initializeApp 端收到错误。
firebaseSample.ts
import * as firebase from "firebase/app";
import 'firebase/auth';
import 'firebase/firestore';
import config from 'config/config';
const FirebaseSample = firebase.initializeApp(config.firebase);
export const Providers = {
facebook: new firebase.auth.FacebookAuthProvider()
}
export const auth = firebase.auth();
export default FirebaseSample;
config.ts
const config = {
firebase: {
apiKey: "unique_id",
authDomain: "unique_id",
databaseURL: unique_id",
projectId: "unique_id-1663e",
storageBucket: "unique_id.appspot.com",
messagingSenderId: "unique_id",
appId: "1:unique_id",
measurementId: "G-unique_id"
}
}
export default config;
更新 firebaseSample.ts
import firebase from 'firebase/compat/app'
import 'firebase/compat/auth'
import 'firebase/compat/firestore'
import config from 'config/config';
const FirebaseSample = firebase.initializeApp(config.firebase);
export const Providers = {
facebook: new firebase.auth.FacebookAuthProvider()
}
export const auth = firebase.auth();
export default FirebaseSample;
- 更新 firebaseSample.ts 文件中的导入文件后,我开始收到错误“ReferenceError: Can't find variable: Providers”。我将其作为屏幕截图附上。
更新 2.0 firebaseSample.ts
import firebase from 'firebase/compat/app'
import 'firebase/compat/auth'
import 'firebase/compat/firestore'
import config from 'config/config';
const FirebaseSample = firebase.initializeApp(config.firebase);
const Providers = {
facebook: new firebase.auth.FacebookAuthProvider()
}
export Providers;
export const auth = firebase.auth();
export default FirebaseSample;
最后更新和信息
我通过更新整个项目中的 firebase 导入结构解决了该错误。
import firebase from 'firebase/compat/app'
import 'firebase/compat/auth'
import 'firebase/compat/firestore'
非常感谢您。
【问题讨论】:
-
export { Providers }{}。要将其导入其他组件:import { Providers } from "../path/to/firebaseSample.ts" -
Providers 不是一个组件。
-
没有任何代码显示您如何使用导入的
Providers。您可以在问题中添加它吗? -
我没有为提供者做任何额外的事情。我在这里使用参考。 firebase.google.com/docs/auth/web/facebook-login#web-version-9
-
我已经在处理 firebaseSample.ts。 import { Providers } from "../path/to/firebaseSample.ts" 我不明白为什么需要导入它。
标签: javascript reactjs firebase firebase-authentication facebook-javascript-sdk