I've been working on a simple card catalog project that takes input from a form and displays it on a card.
On each card is the option to remove the card completely, or check/uncheck a box. In order to do this, I need to access the object in the firebase real-time database.
Each object is created by a .push()
and generates a random key name, and I would like to access this key name to make changes in the object or remove it.
I read up on the documentation at https://firebase.google.com/docs/database/web/read-and-write, and it provides a way to get the key before pushing. This worked in the example provided, which used update()
, but when I tried it with my push()
, the keys did not match up.
Also, since I will need to use the key in a separate function that renders the card, I tried to make it a global variable and that returned undefined
.
Can you tell me how I can get the key for use in another function?
Thanks!
When I console.log newPostKey
inside the function here it matches what's in the database, but when I do it outside I get a 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);
This returns a newPostKey
that doesn't match what I see in Firebase. Outside it's also undefined.
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);