Ad

How To Create JSON Tree And Nested Nodes In Firebase Using AngularFire2

- 1 answer

There is no proper documentation for AngularFire2 v5, so I don't know where am i supposed to learn from, but here it's only for Firestore. I don't use firestore, I use Firebase Realtime Database. https://github.com/angular/angularfire2/tree/master/docs

However, I'm pretty new to it, and I'm looking how can I store data in a collection, that would look something like this:

nepal-project-cffb1: 
   users: 
      userid: 
        email: "[email protected]"
        score: 1

My function now looks like this:

this._db.list("users/" + "id").set({
      email: this.user,
      score: this.score
    })

but it doesn't work, I get Expected 2 arguments, but got 1. error. There are a bunch of syntaxes, like .ref.list and i don't know which one to use.

Ad

Answer

There is an entire section of the AngularFire guide dedicated to RTDB, so I'm confused by the statement that there is no real documentation. Typically you would use valueChanges() to create a list observer as described here for reading, and set() is covered here.

So as that doc illustrates, you need to pass the key of the record to be modified, and also the data to be changed when you call it.

this._db.list("users").set("id", {...});

But if you aren't monitoring the collection, you can also just use db.object directly:

this._db.object("users/id").set({...});

One aspect that may not be immediately intuitive with AngularFire is that it's mainly an adapter pattern intended to take away some of the boilerplate of ferrying data between your Angular model and your Firebase servers.

If you aren't syncing data (downloading a local copy) then there's no reason to use AngularFire here. You can simply call the Firebase SDK directly and avoid the overhead of subscribing to remote endpoints:

firebase.database().ref("users/id").set({...});
Ad
source: stackoverflow.com
Ad