javascript - 在 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();
解决方案
通过做
<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 SDK,firebase-firestore
如firebase-auth
firebase-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 提供的两种不同的数据库服务。
推荐阅读
- database - 如何在mongodb中使用skip和limit删除冗余数据
- reactjs - 使用注入的 intl 模拟反应类方法
- matplotlib - 修复由赛璐珞创建的动画中的图例
- javascript - 如何通过增加
- reactjs - 对象作为 React 子级无效,呈现单个数字
- git - MAC + git gui -> 包“Tcl”的版本冲突:有 8.5.9,需要 8.6
- android - Glide 不会将图像放入 imageView
- python - 如何将 python 列表作为 column_name 和值传递给 MySQL 插入语句
- mysql - MySQL查询以查找组合行的值
- reactjs - 我在 reactjs 代码中面临搜索栏错误