【问题标题】:firebase.database.ref is not a function errorfirebase.database.ref 不是函数错误
【发布时间】:2021-03-18 00:46:17
【问题描述】:

我正在尝试从我的数据库中读取/写入数据,但我总是收到此错误:

firebase.database.ref 不是函数错误

这是我将 firebase 包含到项目中的方式:

<script src="https://www.gstatic.com/firebasejs/5.9.3/firebase-app.js"></script>
<script src="https://www.gstatic.com/firebasejs/5.9.3/firebase-auth.js"></script>
<script src="https://www.gstatic.com/firebasejs/5.9.3/firebase-database.js"></script>

然后:

<script>
var config = {
    ...
};

firebase.initializeApp(config);
</script>

Firebase 身份验证工作正常。但是当我这样做时:

function insertUser(user,name) {


     var ref = firebase.database.ref();

        ref.collection("users").doc(user.uid).set({
         uid: user.uid,
         email: user.email,
         name: name

         })
    .then(function() {
      console.log("Document successfully written!");
    })
    .catch(function(error) {
        console.error("Error writing document: ", error);
    });

}

我收到上面的错误。我做错了什么?

【问题讨论】:

  • 我是var ref = firebase.database().ref();
  • @ChrisG 哦,伙计,多么愚蠢的错误 :(... 非常感谢!它现在可以工作了。
  • 我有类似的问题,我解决了,但降低了版本 7.6.1 -> 5.9.3

标签: javascript firebase firebase-realtime-database


【解决方案1】:

database() 是一个方法,因此将其更改为以下内容:

 var reference =  firebase.database().ref();

最好不要使用相同的变量和方法名。

【讨论】:

    【解决方案2】:

    我还发现最新的 firebase 库存在找不到数据库功能的问题。经过研究发现,这是由于我正在为数据库导入 Javascript:

    以前我使用的是下面的脚本,但它不起作用:

    <script src="https://www.gstatic.com/firebasejs/7.16.0/firebase-app.js"></script>
    

    从脚本 URL 中删除 -app 后,它开始工作:

    <script src="https://www.gstatic.com/firebasejs/7.16.0/firebase.js"></script>
    

    希望这对其他人有帮助。

    【讨论】:

      【解决方案3】:

      如果您将 firestore(数据库)模块导入到某个 React 组件中,请确保您将在主 firebase 文件中导入 "firebase/database" 并导出 export const firestore = app.database()

      Firebase.tsx

      import firebase from "firebase/app"
      import "firebase/auth"
      import "firebase/database"
      
      const app = firebase.initializeApp({
        apiKey: process.env.REACT_APP_FIREBASE_API_KEY,
        authDomain: process.env.REACT_APP_FIREBASE_AUTH_DOMAIN,
        databaseURL: process.env.REACT_APP_FIREBASE_DATABASE_URL,
        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
      })
      
      export const firestore = app.database()
      export const auth = app.auth()
      export default app
      

      myComponent.tsx

      import React from "react";
      import {firestore} from '../../../Firebase'
      
      export default function Home() {
      
        const db = firestore.refFromURL("https://<project>.firebaseio.com")
        return (
         ...
         )
      }
      

      【讨论】:

        【解决方案4】:

        我遇到了同样的问题。我刚刚添加了这个 CDN

        <script src="https://www.gstatic.com/firebasejs/8.0.1/firebase-database.js"></script>
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2017-10-23
          • 2013-01-04
          • 1970-01-01
          • 2017-05-09
          • 2021-09-14
          • 2021-05-10
          相关资源
          最近更新 更多