我正在尝试从数据库读取/写入数据,但是我总是会收到此错误:
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);
});
}
我在上面遇到错误。我在做什么错了?
答案 0 :(得分:2)
我还发现最新的Firebase库没有发现数据库功能问题。研究了发现的内容之后,这是由于我要为数据库导入Javascript
以前,我使用的是以下脚本,该脚本无法正常工作:
<script src="https://www.gstatic.com/firebasejs/7.16.0/firebase-app.js"></script>
从脚本网址中删除-app后,它便开始工作:
<script src="https://www.gstatic.com/firebasejs/7.16.0/firebase.js"></script>
希望这对其他人有帮助。
答案 1 :(得分:1)
database()
是一种方法,请将其更改为以下内容:
var reference = firebase.database().ref();
最好不要使用相同的变量和方法名称。
答案 2 :(得分:1)
如果您要将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 (
...
)
}
答案 3 :(得分:0)
我遇到了同样的问题。我刚刚添加了这个 CDN
<script src="https://www.gstatic.com/firebasejs/8.0.1/firebase-database.js"></script>