我在这里添加 Firebase 图像:
NeonFragment.kt
class NeonFragment : Fragment() {
private lateinit var binding: FragmentNeonBinding
private lateinit var adapter: PhotosAdapter
private lateinit var dbRef: DatabaseReference
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
binding = FragmentNeonBinding.inflate(layoutInflater)
dbRef = FirebaseDatabase.getInstance().reference
adapter = PhotosAdapter()
binding.neonRecyler.layoutManager = LinearLayoutManager(context)
binding.neonRecyler.adapter = adapter
dbRef.root.child("Image").addValueEventListener(object : ValueEventListener {
override fun onDataChange(snapshot: DataSnapshot) {
val list = ArrayList<ModelClass>()
for (snap in snapshot.children) {
val model = snap.getValue(ModelClass::class.java)
model?.let { list.add(it) }
}
adapter.UpdateData(list)
Toast.makeText(context, "OnData", Toast.LENGTH_SHORT).show()
}
override fun onCancelled(error: DatabaseError) {
Toast.makeText(context, error.message, Toast.LENGTH_SHORT).show()
}
})
return binding.root
}
}
照片适配器.kt
class PhotosAdapter : RecyclerView.Adapter<PhotosAdapter.DataHolder>() {
private var list = ArrayList<ModelClass>()
private lateinit var context: Context
class DataHolder(private val binding: LayoutPhotosBinding) : RecyclerView.ViewHolder(binding.root)
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): DataHolder {
context = parent.context
val binding = LayoutPhotosBinding.inflate(LayoutInflater.from(parent.context), parent, false)
return DataHolder(binding)
}
override fun getItemCount(): Int {
return list.size
}
override fun onBindViewHolder(holder: DataHolder, position: Int) {
val dataModel = list[position]
Glide.with(context).load(dataModel.image).into(holder.binding.imgData)
}
fun UpdateData(list: ArrayList<ModelClass>) {
this.list = list
notifyDataSetChanged()
}
}
模型类
package com.custom.wallpaper.ModelClass
class ModelClass {
var image: String = ""
constructor(image: String) {
this.image = image
}
}
帮我解决这个问题,我想从 Firebase 实时获取数据到用户应用程序,我还添加了 firebase 图像,让您知道如何在 Firebase 中添加数据结构,我完全支持 Firebase,我添加了两个应用程序一个 Firebase 项目,一个管理员应用程序,他可以将图像添加到 firebase ,第二个应用程序给用户,然后可以访问图像
更新以下行
dbRef.root.child("Image").child("Neon").addValueEventListener(object : ValueEventListener {
override fun onDataChange(snapshot: DataSnapshot) {
val list = ArrayList<ModelClass>()
for (snap in snapshot.children) {
val model = snap.getValue(ModelClass::class.java)
model?.let { list.add(it) }
}
adapter.UpdateData(list)
Toast.makeText(context, "OnData", Toast.LENGTH_SHORT).show()
}
override fun onCancelled(error: DatabaseError) {
Toast.makeText(context, error.message, Toast.LENGTH_SHORT).show()
}
})
更新以下行
dbRef.root.child("Image").child("Neon").addValueEventListener(object : ValueEventListener {
override fun onDataChange(snapshot: DataSnapshot) {
val list = ArrayList<ModelClass>()
for (snap in snapshot.children) {
val model = snap.getValue(ModelClass::class.java)
model?.let { list.add(it) }
}
adapter.UpdateData(list)
Toast.makeText(context, "OnData", Toast.LENGTH_SHORT).show()
}
override fun onCancelled(error: DatabaseError) {
Toast.makeText(context, error.message, Toast.LENGTH_SHORT).show()
}
})