Добрый день. У меня возникают трудности с созданием и записью в новую конечную точку в базе данных firebase. То, что я пытаюсь сделать, - создать новый дочерний узел под названием savedUser
и нажать на эту вновь созданную конечную точку текущее содержимое моего существующего узла user
. Вот код, я использую:Firebase, не создающий новую указанную конечную точку
// this is the initial search that sets the data in the user
// endpoint
$("#searchButton").on("click", function(){
firebase.database().ref().once("child_added", function(snapshot){
// little lesson in closure
// dry coding
function ez(path){
return snapshot.child(path).val();
}
var dataObject = {
gamertag: ez("gamertag"),
totalKills: ez("totalKills"),
totalDeaths: ez("totalDeaths"),
totalGames: ez("totalGames")
};
//handlebars, getting template
var sourceTemplate = $("#list-template").html();
var template = Handlebars.compile(sourceTemplate);
//handlebars, sending object to DOM
var templateHTML = template(dataObject);
var $templateHTML = $(templateHTML);
$("#profileSearch").append($templateHTML);
});
});
var $confirmButton = $("#confirmButton");
// This is supposed to fire when the "save" button is clicked
$(document).on("click", "#confirm", function(event){
event.preventDefault()
// referencing database again to iterate and capture value
firebase.database().ref().once("value", function(snapshot){
function ez(path){
return snapshot.child(path).val();
}
// same procedure so far
var savedUserData = {
gamertag: ez("gamertag"),
totalKills: ez("totalKills"),
totalDeaths: ez("totalDeaths"),
totalGames: ez("totalGames")
}
function saveUser(newChildPath, data){
firebase.database().ref(newChildPath).set(data)
}
// call the function saves at the endpoint "savedUser"
saveUser("savedUser/", savedUserData);
});
});
Вышеприведенный код ничего не пишет в свою базу данных, но на основе руководств я смотрел на что я должен делать это успешно. Однако это пишет в моей базе данных:
function saveUser(childPath, data){
firebase.database().ref(childPath).set(data)
}
saveUser("savedUser/", {new: "path"});
});
});
На моей консоли базы данных я могу найти «/ savedUser/новый» и не обновляет никаких проблем. Но когда я пытаюсь захватить данные из базы данных и форматировать их, как в первом примере, это не работает, и ничего не написано. Фактически конечная точка savedUser
стирается. Должна быть тонкость, которую мне не хватает. Я не хорошо разбираюсь в Firebase. Любая помощь приветствуется и дайте мне знать, если я могу предоставить дополнительную информацию.
Спасибо!
Возможно, Firebase не любит это форматирование 'gamertag: ez (" gamertag "),' для свойств объекта? Кроме того, попробуйте включить только соответствующий код, то есть зачем рассказывать нам о Handlebars? –
Каковы значения в 'savedUserData'? Неужели все они оказались пустыми? Это действительно минимальный код, необходимый для воспроизведения проблемы? Похоже, что набор проблем можно упростить. Кроме того, включите отладку: 'firebase.database.enableLogging (true);' – Kato
@Ursus @Kato Мне удалось заставить его работать, изменив пути в 'savedUserData' на что-то вроде' 'user/gamertag'', например и тогда все было отправлено, как и должно было быть. Спасибо за предложения. – m00saca