简体   繁体   English

如何修复在firebase的子数据库列中生成的随机数?

[英]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.所以我想使用js脚本和visual studio代码中的实时服务器将此Web表单提交给firebase。 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.我想为该列提供名称列“lakshan”的值。 How I do that ?我怎么做?

Current result is messages is Object当前结果是消息是对象
I want messages as Array我想要消息作为数组

This is the js code这是js代码

// 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.你得到的随机数是由push()方法生成的唯一密钥。

If you want to use your own key you need to use the set() method as follows:如果要使用自己的密钥,则需要使用set()方法,如下所示:

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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