Acabo de intentar escribir datos muy básicos en mi base de datos de Firebase, pero no funciona. Aquí está el código que he usado
<script src="https://www.gstatic.com/firebasejs/9.8.4/firebase-database.js"></script> <script type="module"> // Import the functions you need from the SDKs you need import { initializeApp } from "https://www.gstatic.com/firebasejs/9.8.4/firebase-app.js"; // TODO: Add SDKs for Firebase products that you want to use // https://firebase.google.com/docs/web/setup#available-libraries // Your web app's Firebase configuration const firebaseConfig = { apiKey: "", authDomain: "", databaseURL: "", projectId: "", storageBucket: "", messagingSenderId: "", appId: "" }; // Initialize Firebase const app = initializeApp(firebaseConfig); function writeUserData() { firebase.database().ref('users').set({ uId: document.getElementById('fname').value, refercode:document.getElementById('lname').value}) </script> <form name="myForm"> <div class="col-25"> <label for="fname">text1</label> </div> <div class="col-75"> <input type="text" id="fname" name="firstname" placeholder="Your PlayStore Email.." required></input> <div class="col-25"> <label for="lname">text2</label> </div> <div class="col-75"> <input type="text" id="lname" name="codename" placeholder="Your PlayStore Email.." required></input> </div> <button onclick="writeUserData()" class="button">Request Withdrawal</button></form>Pero esto no está escribiendo ningún dato en mi base de datos. Devuelve un error en la consola, "writeUserData" no está definido. ¿Cómo puedo resolver esto?
Dado que su bloque de script se escribe como un module , las partes internas del mismo no están disponibles globalmente.
Una forma de hacer que writeUserData esté disponible para el controlador de clic de botón es agregarlo al objeto de la window como se muestra aquí: Módulos JS - Error de referencia: <función> no está definida
Pero una mejor solución es no depender de un controlador onclick en línea y, en su lugar, adjuntar el controlador en el propio módulo de script con addEventListener como:
<script type="module"> ... function writeUserData() { firebase.database().ref('users').set({ uId: document.getElementById('fname').value, refercode:document.getElementById('lname').value }) } // 👇 document.querySelector('button').addEventListener('click', writeUserData) </script>