I'm getting the following error when using firebase realtime datqabase in android
val catListener = object : ValueEventListener {
override fun onDataChange(dataSnapshot: DataSnapshot) {
if (dataSnapshot.exists()) {
// Get Post object and use the values to update the UI
for (eventSnapshot in dataSnapshot.children) {
val name = eventSnapshot.child("name").getValue() as String
list.add(Category(name));
}
var adp = CategoryAdapter(list);
cat_rv.adapter = adp
adp.onItemClick = { pos, view ->
i.putExtra("category", list[pos].name)
startActivity(i)
}
}
override fun onCancelled(databaseError: DatabaseError) {
// Getting Post failed, log a message
Log.w("Category", "loadCat:onCancelled", databaseError.toException())
}
}
Errors--
Modifier 'override' is not applicable to 'local function' (refers to object: ValueListener
Object is not abstract and does not implement abstract member public abstract fun onCancelled(@NonNull p0: DatabaseError): Unit defined in com.google.firebase.database.ValueEventListener
Change this:
val catListener = object : ValueEventListener {
override fun onDataChange(dataSnapshot: DataSnapshot) {
if (dataSnapshot.exists()) {
// Get Post object and use the values to update the UI
for (eventSnapshot in dataSnapshot.children) {
val name = eventSnapshot.child("name").getValue() as String
list.add(Category(name));
}
var adp = CategoryAdapter(list);
cat_rv.adapter = adp
adp.onItemClick = { pos, view ->
i.putExtra("category", list[pos].name)
startActivity(i)
}
}
override fun onCancelled(databaseError: DatabaseError) {
// Getting Post failed, log a message
Log.w("Category", "loadCat:onCancelled", databaseError.toException())
}
}
into this:
val catListener = object : ValueEventListener {
override fun onDataChange(dataSnapshot: DataSnapshot) {
if (dataSnapshot.exists()) {
// Get Post object and use the values to update the UI
for (eventSnapshot in dataSnapshot.children) {
val name = eventSnapshot.child("name").getValue() as String
list.add(Category(name));
}
var adp = CategoryAdapter(list);
cat_rv.adapter = adp
adp.onItemClick = { pos, view ->
i.putExtra("category", list[pos].name)
startActivity(i)
}
} // <--- the missing brace
}
override fun onCancelled(databaseError: DatabaseError) {
// Getting Post failed, log a message
Log.w("Category", "loadCat:onCancelled", databaseError.toException())
}
}
You have a missing brackets