Firebase 的打字稿类型

时间:2021-03-05 02:48:08

标签: typescript firebase firebase-authentication

我希望能够引用 IdTokenResult 的接口,以便我可以在下面的代码中使用。

export interface AppContextProps {
  token: firebase.auth.IdTokenResult | undefined,
  updateAppContext(newContext: any): void | undefined,
}

如果我像几乎所有在线文档推荐的那样导入 firebase

import firebase from "firebase/app"
import "firebase/auth"
import "firebase/database"
import "firebase/firestore"
import "firebase/firebase-storage"

我不知道如何访问该接口,因为 firebase.auth.IdTokenResult 似乎不存在。但是,如果我像这样导入 firebase...

import firebase from "firebase"

我能够访问我想要的界面,但我在浏览器中收到有关在开发模式下运行 firebase 的警告。我怎样才能正确地做我想做的事?

1 个答案:

答案 0 :(得分:0)

似乎我想要使用 firebase 的每个文件都需要做...

import firebase from "firbase/app
import "firebase/<whatever>

为了避免在任何地方都这样做,我正在做这样的事情......

import firebase from "firbase/app
import "firebase/auth"
import "firebase/database"
import "firebase/firestore"
import "firebase/firebase-storage"

const auth: firebase.auth.Auth = firebase.auth()
const storage: firebase.storage.Storage = firebase.storage()
const app: firebase.app.App = firebase.app()
export {auth, storage, app}

然后我试图只在我想要的地方导入 auth 对象,但它似乎是 firebase sdk 对象到这种模式,因为它认为我导入的比我需要的更多。 IDK 也许这仍然可以工作,但一旦我直接按文件导入,警告消息就消失了。