FirebaseRecyclerOptions 中的错误 setQuery
Error setQuery in FirebaseRecyclerOptions
我正在为这个错误而苦恼。我正在尝试使用 FirebaseRecyclerAdapter,在构建选项时,我在 FirebaseRecyclerOptions 中使用 SetQuery 时遇到此错误。任何线索?谢谢。
None of the following functions can be called with the arguments supplied:
public open fun setQuery(p0: Query, p1: SnapshotParser<Tuto!>):
FirebaseRecyclerOptions.Builder<Tuto!> defined in
com.firebase.ui.database.FirebaseRecyclerOptions.Builder
public open fun setQuery(p0: Query, p1: Class<Tuto!>): FirebaseRecyclerOptions.Builder<Tuto!>
defined in com.firebase.ui.database.FirebaseRecyclerOptions.Builder
这是我的代码:
firebaseDB = FirebaseFirestore.getInstance()
firebaseStorage = FirebaseStorage.getInstance()
val tutosRef = firebaseDB!!.collection("tutos")
val tutoQuery = tutosRef.limitToLast(50);
val options = FirebaseRecyclerOptions.Builder<Tuto>()
.setQuery(tutoQuery,Tuto::class.java)
.setLifecycleOwner(this)
.build()
val adapter = object : FirebaseRecyclerAdapter<Tuto, TutoAdapter>(options) {
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): TutoAdapter {
return TutoAdapter(LayoutInflater.from(parent.context)
.inflate(R.layout.tuto_holder, parent, false))
}
override fun onBindViewHolder(holder: TutoAdapter, position: Int, model: Tuto) {
holder.bind(model)
}
}
还有我的图托 class:
class Tuto{
var alias: String? = null
var title: String? = null
var description: String? = null
var owner: String? = null
var date_creation: Timestamp? = null
var steps_list: List<String>? = null
var steps_number: Int? = null
override fun toString(): String {
val result: String
result = """
${date_creation.toString()}
$description
$owner
$steps_number
$title
""".trimIndent()
return result
}
}
Firebase 提供两种数据库,Firestore 和实时数据库。它们是具有不同 API 的完全不同的数据库。您的代码正在查询 Firestore:
firebaseDB = FirebaseFirestore.getInstance()
val tutosRef = firebaseDB!!.collection("tutos")
但是您正在为实时数据库使用 Firebase UI:
val options = FirebaseRecyclerOptions.Builder<Tuto>()
.setQuery(tutoQuery,Tuto::class.java)
.setLifecycleOwner(this)
.build()
val adapter = object : FirebaseRecyclerAdapter<Tuto, TutoAdapter>(options) {...}
您需要按照 Firebase UI for Firestore 的说明进行操作,其中涉及使用 FirestoreRecyclerAdapter
。
我正在为这个错误而苦恼。我正在尝试使用 FirebaseRecyclerAdapter,在构建选项时,我在 FirebaseRecyclerOptions 中使用 SetQuery 时遇到此错误。任何线索?谢谢。
None of the following functions can be called with the arguments supplied:
public open fun setQuery(p0: Query, p1: SnapshotParser<Tuto!>):
FirebaseRecyclerOptions.Builder<Tuto!> defined in
com.firebase.ui.database.FirebaseRecyclerOptions.Builder
public open fun setQuery(p0: Query, p1: Class<Tuto!>): FirebaseRecyclerOptions.Builder<Tuto!>
defined in com.firebase.ui.database.FirebaseRecyclerOptions.Builder
这是我的代码:
firebaseDB = FirebaseFirestore.getInstance()
firebaseStorage = FirebaseStorage.getInstance()
val tutosRef = firebaseDB!!.collection("tutos")
val tutoQuery = tutosRef.limitToLast(50);
val options = FirebaseRecyclerOptions.Builder<Tuto>()
.setQuery(tutoQuery,Tuto::class.java)
.setLifecycleOwner(this)
.build()
val adapter = object : FirebaseRecyclerAdapter<Tuto, TutoAdapter>(options) {
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): TutoAdapter {
return TutoAdapter(LayoutInflater.from(parent.context)
.inflate(R.layout.tuto_holder, parent, false))
}
override fun onBindViewHolder(holder: TutoAdapter, position: Int, model: Tuto) {
holder.bind(model)
}
}
还有我的图托 class:
class Tuto{
var alias: String? = null
var title: String? = null
var description: String? = null
var owner: String? = null
var date_creation: Timestamp? = null
var steps_list: List<String>? = null
var steps_number: Int? = null
override fun toString(): String {
val result: String
result = """
${date_creation.toString()}
$description
$owner
$steps_number
$title
""".trimIndent()
return result
}
}
Firebase 提供两种数据库,Firestore 和实时数据库。它们是具有不同 API 的完全不同的数据库。您的代码正在查询 Firestore:
firebaseDB = FirebaseFirestore.getInstance()
val tutosRef = firebaseDB!!.collection("tutos")
但是您正在为实时数据库使用 Firebase UI:
val options = FirebaseRecyclerOptions.Builder<Tuto>()
.setQuery(tutoQuery,Tuto::class.java)
.setLifecycleOwner(this)
.build()
val adapter = object : FirebaseRecyclerAdapter<Tuto, TutoAdapter>(options) {...}
您需要按照 Firebase UI for Firestore 的说明进行操作,其中涉及使用 FirestoreRecyclerAdapter
。