LearnTeachCode / pair-partners

A web app that helps people find study partners for virtual pair programming and collaboration
http://learnteachcode.org/pair-partners/
38 stars 16 forks source link

Up for grabs: Create an example of the Firebase remove() method #51

Open LearningNerd opened 7 years ago

LearningNerd commented 7 years ago

⭐️ This challenge is up for grabs! Claim it by clicking "assign yourself" on the right, under the "Assignees" section for this GitHub issue! You can work on this by yourself or in pairs.

✔️ To complete this challenge: Post a comment at the bottom of this page with some instructions and sample code, so the rest of our team can learn how to use this new Firebase method by reading your comment!

You can edit your comment at any point to update your answer, so you don't have to do these all at once! To edit your comment after you publish it, click the pencil icon in the top right corner of your comment: github-edit-comments

If you have any questions, please post a comment at the bottom of this page! (You can also ask us on Slack, but please post a comment here too so we can more easily reference it later.)

About the Firebase remove method

📚 Official documentation: Firebase API section on the remove method

The remove method deletes data at the specified location in the database. If that database location contains any children (nested objects), they will all be deleted as well.

Your challenge

🏆 The goal: learn how this method works, test it out for yourself, and then post a comment at the bottom of this page with some instructions and sample code to help teach the rest of our team!

Questions to keep in mind:

kammitama5 commented 7 years ago

It says this method returns a Promise containing void, which affects both the parent and the child.

However, you can make it log whether the method was a success via a non-null Promise: The then() method returns a promise. Promises

"Promise has been fulfilled."

or not

"Promise not fulfilled : " + e.message

.then defines when a promise is fulfilled, so the code example (it's a good idea) to have an exception handled in case the Promise is not fulfilled.

I guess you'd have to be careful about using the method in general, because it's removing both the parent and child data. eg.

var dbRef = firebase.database().ref('users/Joe');
dbRef.remove() // void function called
  .then(function() { // .then indicates a Promise
     console.log("Promise has been fulfilled.")
})
.catch(function(e){
  console.log("Promise not fulfilled : " + e.message) 
// if function fails, log the error message and tell us it failed 
});
LearningNerd commented 7 years ago

Thanks @kammitama5, great start on documenting this one as well! I wouldn't worry about the Promises part yet. Suggestions for improving your description/examples above: