martiendt
martiendt

Reputation: 2216

Cannot be converted to DatabaseReference

I try to filter the database of Firebase, but I got this error:

Error:(26, 107) error: incompatible types: Query cannot be converted to DatabaseReference

This is my code. It's running well if I remove .startAt("test"):

DatabaseReference listRef = FirebaseDatabase.getInstance()
   .getReference("question-answer")
   .startAt("test");`

I'm using FirebaseRecycleViewAdapter and I want to filter that view. How to achieve this?

Upvotes: 1

Views: 1078

Answers (2)

Gabriele Mariotti
Gabriele Mariotti

Reputation: 364770

Error:(26, 107) error: incompatible types: Query cannot be converted to DatabaseReference

You can check in the official documentation.
The method startAtreturns a Query not a DatabaseReference.

You have to use:

Query listRef = FirebaseDatabase.getInstance()
   .getReference("question-answer")
   .startAt("test");

You can use your RecyclerView by passing a Query instead of a normal DatabaseReference.

Query listRef = ....;
mAdapter = new FirebaseRecyclerAdapter<XX, XXViewHolder>(XX.class,
            R.layout.xxx_recycler_item, EXXViewHolder.class, listRef) { ... }

Upvotes: 3

Linxy
Linxy

Reputation: 2635

Just use

Query query  = FirebaseDatabase.getInstance()
   .getReference("question-answer")
   .startAt("test");

query is a parameter for the recycleradapter so it will work because DatabaseReference extends Query

Upvotes: 2

Related Questions