尝试将数据写入控制台时 Firebase 抛出错误
2021-02-04
152
我正在为 firebase 做一个演示,想在我们的数据库中添加一个用户 + 在我们的数据库中添加一个包含更多用户信息的部分。数据库目前没有安全规则,因为它是一个演示,没有存储任何重要信息。每当我点击网页上的提交按钮时,我都会收到此错误:
FIREBASE 致命错误:
Can't determine Firebase Database URL. Be sure to include databaseURL option when calling firebase.intializeApp().
HTML(在 body 标签中):
<div>
<h1>SIGNUP ///(88w88)\\\</h1>
<input id = "emailS">EMAIL</input>
<input id = "passwordS">PASSWORD</input>
<input id = "name">NAME</input>
<input id = "phone">PHONE</input>
<input id = "color">FAVORITE COLOR</input>
<button id = "submit" onclick = "submitSignUp()">SUBMIT</button>
</div>
<script src="https://www.gstatic.com/firebasejs/7.24.0/firebase-app.js"></script>
<script src="https://www.gstatic.com/firebasejs/4.8.1/firebase.js"></script>
<script>
// Your web app's Firebase configuration
var firebaseConfig = {
apiKey: "AIzaSyAOw4BCZhBpKQ1HTaqRXbzj7kFFzviL61Q",
authDomain: "fir-demo-ca0f5.firebaseapp.com",
projectId: "fir-demo-ca0f5",
storageBucket: "fir-demo-ca0f5.appspot.com",
messagingSenderId: "390968592171",
appId: "1:390968592171:web:b5856c31026ac491b4e76e"
};
// Initialize Firebase
firebase.initializeApp(firebaseConfig);
</script>
<script src = "FirebaseDemoB.js"></script>
JS:- 应该发生的是,注册一个用户,我们将一个全局变量设置为 true,表示用户已注册。一旦他们登录,使用 onStateChanged,我们会检查他们是否已注册(未登录),并从表单中获取信息并将其写入数据库。实际上,我得到了上面提到的错误
var signedUp = false;
function submitSignUp()
{
console.log("FIREBASE");
var email2 = document.getElementById("emailS").value;
var password = document.getElementById("passwordS").value;
console.log(email2 + " " + password);
firebase.auth().createUserWithEmailAndPassword(email2, password)
.then((userCredential) => {
// Signed in
user = userCredential.user;
signedUp = true;
// ...
})
.catch((error) => {
var errorCode = error.code;
var errorMessage = error.message;
// ..
});
}
function writeUserData(userId, name, phone, color)
{
firebase.database().ref('users/' + userId).set({
name: name,
phone: phone,
color : color
});
}
firebase.auth().onAuthStateChanged((user) => {
if (user) {
if(signedUp)
{
var name = document.getElementById("name").value;
var phone = document.getElementById("phone").value;
var color = document.getElementById("color").value;
writeUserData(user.uid, name, phone, color);
}
// ...
} else {
console.log("HELLOTHERE");
}
});
1个回答
代码中的配置代码段不包含
databaseURL
属性,而如果您想使用 Firebase 实时数据库,则需要该属性。
这很可能是因为您在创建数据库之前复制了配置代码段。您只需从 Firebase 控制台复制更新后的配置代码段,然后将其添加到代码中,即可解决问题。
Frank van Puffelen
2021-02-04