XCode Warrier
XCode Warrier

Reputation: 775

Firebase, Swift: Fetch snapshot based on specific value

I have a Firebase dataset:

and a snapshot query:

    FIRDatabase.database().reference().child("users").observe(.childAdded, with: { (snapshot) in

How can I do a query so that only the ID for user with username "MyUsername" is returned?

E.g. can I do something like:

let query = "/*/credentials/[username=MyUsername]"
FIRDatabase.database().reference().child("users").child(query)

Upvotes: 0

Views: 241

Answers (1)

Frank van Puffelen
Frank van Puffelen

Reputation: 598623

To get only user node(s) matching a specific user name, you need a query:

FIRDatabase
  .database().reference()
  .child("users")
  .queryOrdered(byChild: "credentials/username")
  .queryEqual(toValue: "MyUsername")
  .observe(.childAdded, with: { (snapshot) in

Also see the Firebase documentation on ordering and filtering data.

Upvotes: 1

Related Questions