简体   繁体   中英

How to fix random number generate in the child db column in firebase?

So I want to submit this web form to firebase using js script and live server that in visual studio code. But after the submit, there is a child column with random numbers like this . I want to give a value of the name column "lakshan" to that column. How I do that ?

Current result is messages is Object
I want messages as Array

This is the js code

// Initialize Firebase (ADD YOUR OWN DATA)


  var firebaseConfig = {
    apiKey: "api key here",
    authDomain: "test-a137f.firebaseapp.com",
    databaseURL: "https://test-a137f.firebaseio.com",
    projectId: "test-a137f",
    storageBucket: "test-a137f.appspot.com",
    messagingSenderId: "id here",
    appId: "appId goes here",
    measurementId: "the measurementId"
  };

  firebase.initializeApp(firebaseConfig);
  firebase.analytics();



// Reference messages collection
var messagesRef = firebase.database().ref('Admins');

// Listen for form submit
document.getElementById('contactForm').addEventListener('submit', submitForm);

// Submit form
function submitForm(e){
  e.preventDefault();

  // Get values
  var name = getInputVal('name');
  var company = getInputVal('company');
  var email = getInputVal('email');
  var phone = getInputVal('phone');
  var message = getInputVal('message');

  // Save message
  saveMessage(name, company, email, phone, message);

  // Show alert
  document.querySelector('.alert').style.display = 'block';

  // Hide alert after 3 seconds
  setTimeout(function(){
    document.querySelector('.alert').style.display = 'none';
  },3000);

  // Clear form
  document.getElementById('contactForm').reset();
}

// Function to get get form values
function getInputVal(id){
  return document.getElementById(id).value;
}

// Save message to firebase
function saveMessage(name, company, email, phone, message){
  var newMessageRef = messagesRef.push();
  newMessageRef.set({
    name: name,
    company:company,
    email:email,
    phone:phone,
    message:message
  });
}

The random number you get is a unique key generated by the push() method.

If you want to use your own key you need to use the set() method as follows:

  var messagesRef = firebase.database().ref('Admins');

  var childNode = 'lakshan';  
  // Or var childNode = 'Alex';
  // Or var childNode = 'Denis';

  messagesRef.child(childNode).set({
    name: name,
    company:company,
    email:email,
    phone:phone,
    message:message
  });

This is how I wanted. Thank you Renaud ;)

var childNode = name;  
  // Or var childNode = 'Alex';
  // Or var childNode = 'Denis';

  messagesRef.child(childNode).set({
    name: name,
    company:company,
    email:email,
    phone:phone,
    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