React Native -typeError:_firebase.default.auth不是一个函数
2021-11-21
2602
我有一个 React Native 应用程序并具有以下功能:
import firebase from './firebase'
export function MainNavigator() {
const [token, setToken] = useAtom(tokenAtom);
useEffect(() => {
firebase.auth().onIdTokenChanged(async (user) => {
setToken(user ? await user.getIdToken() : null);
});
}, []);
.....
.... more code
上述代码在 Expo 中有效,但我有一个新的 React Native 项目(不是使用 expo 构建的),并且失败了:
我的
package.json
文件中有以下内容:
"@react-native-firebase/app": "^13.0.1",
"@react-native-firebase/functions": "^13.0.1",
"firebase": "^9.5.0",
而我的
firebase.js
文件如下(根目录)
import * as firebase from "firebase/app";
// Your web app's Firebase configuration
var firebaseConfig = {
apiKey: "Secret stuff",
authDomain: "Secret stuff",
databaseURL: "Secret stuff",
projectId: "Secret stuff",
storageBucket: "Secret stuff",
messagingSenderId: "Secret stuff",
appId: "Secret stuff",
measurementId: "Secret stuff"
};
// Initialize Firebase
firebase.initializeApp(firebaseConfig);
export default firebase;
我收到以下错误:
TypeError: _firebase.default.auth is not a function. (In '_firebase.default.auth()', '_firebase.default.auth' is undefined)
2个回答
您显示的代码均未导入 Firebase Authentication SDK。因此,当您尝试使用
firebase.auth()
时,它会正确指示找不到该 SDK。
我猜您也想使用类似以下内容导入 Auth SDK:
import "firebase/auth";
我还建议您查看有关 升级到 v9 或 v9/compat SDK 的文档。
Frank van Puffelen
2021-11-21
// v9 兼容包与 v8 代码 API 兼容
import firebase from 'firebase/compat/app';
import 'firebase/compat/auth';
import 'firebase/compat/firestore';
Kieronny Oliveira
2022-01-20