首页 > 解决方案 > 尝试将数据写入控制台时 Firebase 抛出错误

问题描述

我正在为 firebase 做一个演示,并希望向我们的数据库添加一个用户 + 向我们的数据库添加一个包含更多用户信息的部分。该数据库目前没有安全规则,因为它是一个演示并且不存储任何重要信息。每当我点击网页上的提交按钮时,我都会收到此错误:

FIREBASE 致命错误:

无法确定 Firebase 数据库网址。调用 firebase.initializeApp() 时务必包含 databaseURL 选项。

HTML(在正文标签中):

<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");
  }
});

标签: javascripthtmlfirebasefirebase-realtime-database

解决方案


您的代码中的配置片段不包含databaseURL属性,如果您想使用 Firebase 实时数据库,则需要该属性。

这很可能是因为您在创建数据库之前复制了配置片段。您只需从 Firebase 控制台复制更新的配置片段,并将其添加到您的代码中即可解决问题。


推荐阅读