【问题标题】:TypeError: _app.default.auth is not a function - React Native Web - FirebaseTypeError: _app.default.auth 不是一个函数 - React Native Web - Firebase
【发布时间】:2022-01-19 17:51:54
【问题描述】:

我目前正在 React Native Web 上开发一个项目,这是我在组件中的登录调用。 (调用在组件useEffect中,组件一打开,就应该匿名登录)

import firebase from 'firebase/compat/app'
import 'firebase/compat/auth'
const firebaseConfig = {
        apiKey: "****",
        authDomain: "****",
        projectId: "****",
        storageBucket: "****",
        messagingSenderId: "****",
        appId: "****",
        measurementId: "****"
      };
      firebase.initializeApp(firebaseConfig) 

const login = async () => {
        firebase.auth().signInAnonymously() 
            .then((userCredential) => {
                // Signed in
                // ...
              })
              .catch((error) => {
                console.log("LOG: "+error)
              });
    } 

但每次我得到错误:未捕获(承诺)类型错误:_app.default.auth 不是函数

我尝试了几种不同的导入方式,但似乎都不起作用。 当我在 Firefox 上打开控制台时,我看到了错误。我该如何解决这个问题?

谢谢

【问题讨论】:

  • 你在useEffect中有firebase初始化函数吗?我认为这可能是因为在初始化 firebase 之前调用了 auth() 函数。
  • 不幸的是,它不起作用,我都尝试了:在 useEffect 中初始化,在 useEffect 之外,与登录调用相同的 useEffect,只是一切

标签: javascript firebase react-native firebase-authentication react-native-web


【解决方案1】:

通过检查 firebase 是否已初始化且用户未登录来尝试此方法:

const [loggedIn, setLoggedIn] = React.useState(false)

React.useEffect(() => {
    if (!firebase.apps.length) {
        firebase.initializeApp({
            apiKey: "****",
            authDomain: "****",
            projectId: "****",
            storageBucket: "****",
            messagingSenderId: "****",
            appId: "****",
            measurementId: "****"
        });
    }
}, [])

React.useEffect(() => {
    if (firebase.apps.length && !loggedIn) {
        setLoggedIn(true)
        login()
    }
}, [firebase])

const login = async () => {
    firebase.auth().signInAnonymously()
        .then((userCredential) => {
            // Signed in
            // ...
        })
        .catch((error) => {
            console.log("LOG: " + error)
        });
} 

【讨论】:

  • 很遗憾,还是同样的错误
猜你喜欢
  • 1970-01-01
  • 2021-11-18
  • 2020-12-25
  • 1970-01-01
  • 1970-01-01
  • 2022-08-23
  • 2021-08-12
  • 2020-10-28
  • 1970-01-01
相关资源
最近更新 更多