简体   繁体   中英

Firebase realtime database record only one child

for a specific use, I would like to save in the realtime database only one element and that it is updated when it is modified, I do not need to save all the changes as child. I have this code but it creates child.

<script type="module">    
import {initializeApp} from "https://www.gstatic.com/firebasejs/9.6.6/firebase-app.js";
import {
    getDatabase,
    set,
    ref,
    push,
    child,
    onValue,
    onChildAdded
} from "https://www.gstatic.com/firebasejs/9.6.6/firebase-database.js";    

const firebaseConfig = {
  apiKey: "...",
  authDomain: "....firebaseapp.com",
  databaseURL: "....firebaseio.com",
  projectId: "...",
  storageBucket: "...",
  messagingSenderId: "...",
  appId: "..."
 };

// Initialize Firebase
const app = initializeApp(firebaseConfig);
const database = getDatabase(app);    

submit.addEventListener('click', (e) => {
    var message = document.getElementById('message').value;
    //var name = myName;

    const id = push(child(ref(database), 'messages')).key;

    set(ref(database, 'messages/' + id), {
        //name: name,
        message: message
    });
    document.getElementById('message').value = "";
    //alert('message has sent');

});

const dbRef = ref(getDatabase());
const newMsg = ref(database, 'messages/');
onChildAdded(newMsg, (data) => {        
        var divData = data.val().message;
        let h1 = document.querySelector("h1");
        h1.textContent = divData;
});
Thanks.

If you don't want to create a child node, you can simply write messages with:

set(ref(database, 'messages'), {
    message: message
});

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM