Я работал над простым проектом каталога карточек, который принимает данные из формы и отображает их на карточке.
На каждой карточке есть возможность полностью удалить карточку или установить / снять отметку коробка. Для этого мне нужно получить доступ к объекту в базе данных реального времени firebase.
Каждый объект создается .push()
и генерирует случайное имя ключа, и я хотел бы получить доступ к этому ключу имя, чтобы внести изменения в объект или удалить его.
Я прочитал документацию по адресу https://firebase.google.com/docs/database/web/read-and-write, и она предоставляет способ получить ключ перед нажатием. Это сработало в приведенном примере, который использовал update()
, но когда я попробовал это с моим push()
, ключи не совпали.
Кроме того, поскольку мне нужно будет использовать ключ в отдельном функции, которая отображает карту, я попытался сделать ее глобальной переменной, и она вернула undefined
.
Можете ли вы сказать мне, как я могу получить ключ для использования в другой функции?
Спасибо !
Когда я console.log newPostKey
внутри функции здесь, он соответствует тому, что находится в базе данных, но когда я делаю это снаружи, я получаю undefined
.
var database = firebase.database();
let newPostKey;
function writeNewPost(uid, username, picture, title, body) {
// A post entry.
var postData = {
author: username,
uid: uid,
body: body,
title: title,
starCount: 0,
authorPic: picture
};
// Get a key for a new Post.
var newPostKey = firebase.database().ref().child('posts').push().key;
console.log(newPostKey);
// Write the new post's data simultaneously in the posts list and the user's post list.
var updates = {};
updates['/posts/' + newPostKey] = postData;
return firebase.database().ref().update(updates);
}
writeNewPost("zzz", "drew", "bucolic", "bobross", "beardo");
console.log(newPostKey);
Это возвращает a newPostKey
, что не соответствует тому, что я вижу в Firebase. Снаружи тоже не определено.
function writeNewPost(uid, username, picture, title, body) {
var postData = {
author: username,
uid: uid,
body: body,
title: title,
starCount: 0,
authorPic: picture
};
var newPostKey = firebase.database().ref().child('posts').push().key;
console.log(newPostKey);
return firebase.database().ref().child('posts').push(postData);
};
writeNewPost("zzz", "drew", "bucolic", "bobross", "beardo");
console.log(newPostKey);