如何使用与图片相同的表格创建url

时间:2019-01-06 13:58:49

标签: javascript firebase firebase-realtime-database

一切正常,但我想使用与URL相同的contactUs表制作url。我正在尝试在用户请求表单时显示表格中的所有内容。

this is the picture of table

var config = {
     apiKey: "=================",
    authDomain: "=================",
    databaseURL: "================",
    projectId: "===========",
    storageBucket: "====================",
    messagingSenderId: "====================="
};

//initialize firebase
   firebase.initializeApp(config);
   var database = firebase.database();
   var storage = firebase.storage();
   var firebaseContactsCollection = database.ref().child('ContactUs');

function submitOrder() {

    var data = {

        Name: $('#NameField').val(),
        Email: $('#EmailsField').val(),
        Subject: $('#SubjectField').val(),
        Message: $('#MessageField').val(),
     //   file: $('#fileButton').val(),
    };

    firebaseContactsCollection.push(data);


};


var fileButton = document.getElementById('fileButton');

function URL(snap) {
    var url = snap.downloadURL;

       firebase.database().ref().child('ContactUs').push(url);

}


function img() {

    var folder = this.files[0];

    var getf = storage.ref("ContactUsImagesfiles/" + new Date());
    getf.put(folder).then(URL);
}

fileButton.onchange = img;

1 个答案:

答案 0 :(得分:1)

您的问题是,每次保存数据时您都在呼叫push()push()方法与set()的不同之处在于,它创建一个唯一的ID,并将您的数据作为子ID存储在该ID下。 set()只会将数据存储在您的引用中。

您可以call push() without storing any data来获取唯一的ID。首先,将其作为全局变量或可以传递给函数的方法进行。

// Get a key for a your form
var firebaseContactsCollection = database.ref().child('ContactUs');
var newFormSubmissionKey = firebaseContactsCollection.push().key;

function submitOrder() {
  // ...
  firebaseContactsCollection.child(newFormSubmissionKey).set(data);
}

function URL(snap) {
  var url = snap.downloadURL; 
  firebaseContactsCollection.child(newFormSubmissionKey).child("url").set(url);
}

在第二个函数中存储URL时,请不要忘记也要引用要保存到该节点的节点。