【问题标题】:firebase.auth() Shows an error in typescriptfirebase.auth() 在 typescript 中显示错误
【发布时间】:2021-09-14 18:44:40
【问题描述】:

我正在尝试使用 Firebase 和 TypeScript 开发具有身份验证功能的应用,但在调用 .auth 函数时发现错误。

悬停时显示的错误是:

类型'typeof import(“e:/Projects/spectrum-test/node_modules/firebase/app/dist/app/index”)'.ts(2339)上不存在属性'auth' 任何

这一行 (export const auth = firebase.auth();) 在 JS 中可以正常工作,但由于某种原因 TS 不喜欢它;

firebase.ts

import firebase from 'firebase/app';
import 'firebase/auth';

const firebaseConfig = {
    apiKey: process.env.REACT_APP_FIREBASE_API_KEY,
    authDomain: process.env.REACT_APP_FIREBASE_AUTH_DOMAIN,
    projectId: process.env.REACT_APP_FIREBASE_PROJECT_ID,
    storageBucket: process.env.REACT_APP_FIREBASE_STORAGE_BUCKET,
    messagingSenderId: process.env.REACT_APP_FIREBASE_MESSAGING_SENDER_ID,
    appId: process.env.REACT_APP_FIREBASE_APP_ID
}

firebase.initializeApp(firebaseConfig);
export const auth = firebase.auth();

我已经安装了@firebase/auth-types@0.11.0,但它并没有解决问题

感谢任何帮助。

【问题讨论】:

  • 您使用的是哪个版本的 Firebase 身份验证 SDK?你能显示你为此添加的依赖项吗?
  • @FrankvanPuffelen 我在下面使用以下 firebase 依赖项:“firebase”:“^9.0.1”、“firebase-admin”:“^9.11.1”、“firebase-functions”: "^3.15.5",

标签: typescript firebase-authentication


【解决方案1】:

对于 9.0 及更高版本的 JavaScript SDK,Firebase 已切换为使用模块化/函数式语法。如果您想继续使用以前的语法,则必须从compat 路径导入库,如documentation 所示:

// v9 compat packages are API compatible with v8 code
import firebase from 'firebase/compat/app';
import 'firebase/compat/auth';
import 'firebase/compat/firestore';

【讨论】:

    【解决方案2】:

    我按照上面的方法进行了完整的实现

     import config from "./config"// this is the default firebase configuration
     import firebase from "firebase/compat/app"
     import "firebase/compat/auth"
     import "firebase/compat/firestore"
    
     const firebaseApp = firebase.initializeApp(config)
    
     const auth = firebaseApp.auth()
     const db = firebaseApp.firestore()
    
     export default Object.freeze({ auth, db })
     export { auth, db }
    

    【讨论】:

      猜你喜欢
      • 2017-11-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-03
      • 2020-10-02
      • 1970-01-01
      • 2023-03-14
      • 2018-07-02
      • 2017-05-25
      相关资源
      最近更新 更多