首页 > 解决方案 > 在 Firebase 中使用 push() 时如何存储在我的数据库中

问题描述

我一直在尝试将元数据从图像连接到数据库并且发生此错误:TypeError: firebase.database is not a function。
我已经阅读了firebase的解释,但这对我来说很困惑,但我设法弄清楚了以下代码:

var postKey = firebase.database().ref('Posts/').push().key; // error is here
uploadTask.snapshot.ref.getDownloadURL().then(function(downloadURL) {
    var updates = {};
    var postData = {
    url: downloadURL,
    user: user.uid
};
updates['Posts/'+postKey] = postData;
firebase.database().ref().update(updates);

有人能注意到我的错误吗,因为我一直在想几个小时,我知道这很愚蠢

这是我将firestore导入项目的方式:

<script src="https://www.gstatic.com/firebasejs/7.6.1/firebase-app.js"></script>
    <script src="https://www.gstatic.com/firebasejs/7.6.1/firebase-analytics.js"></script>
    <script src="https://www.gstatic.com/firebasejs/7.6.1/firebase-auth.js"></script>
    <script src="https://www.gstatic.com/firebasejs/7.6.1/firebase-firestore.js"></script> 
    <script src="https://www.gstatic.com/firebasejs/7.6.1/firebase-storage.js"></script>
    
// Your web app's Firebase configuration

var firebaseConfig = {
  apiKey: "AIzaSyBRNh8os4J9VJoAK7Jjgs-tEqJxyCmIBtg",
  authDomain: "varnamedi.firebaseapp.com",
  databaseURL: "https://varnamedi.firebaseio.com",
  projectId: "varnamedi",
  storageBucket: "varnamedi.appspot.com",
  messagingSenderId: "636325306958",
  appId: "1:636325306958:web:bf10f1eb7dd9f88c88591f",
  measurementId: "G-2GE9N5TGPD"
  };
  
  // Initialize Firebase
  firebase.initializeApp(firebaseConfig);
  firebase.analytics();

  //Display or not

const auth = firebase.auth();
const db = firebase.firestore();    

标签: javascriptfirebasefirebase-realtime-database

解决方案


通过做

<script src="https://www.gstatic.com/firebasejs/7.6.1/firebase-app.js"></script>
<script src="https://www.gstatic.com/firebasejs/7.6.1/firebase-analytics.js"></script>
<script src="https://www.gstatic.com/firebasejs/7.6.1/firebase-auth.js"></script>
<script src="https://www.gstatic.com/firebasejs/7.6.1/firebase-firestore.js"></script> 
<script src="https://www.gstatic.com/firebasejs/7.6.1/firebase-storage.js"></script>

您已在项目中声明了不同的 Firebase 服务(即您已导入不同的Firebase SDKfirebase-firestorefirebase-authfirebase-storage

您需要添加这一行:

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

请注意,如果您不使用 Firestore,则可以删除以下行:

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

事实上,Firestore 和 Firebase 实时数据库是 Firebase 提供的两种不同的数据库服务。


推荐阅读