Impossible de charger les données provenant de firebase

  1. l'an dernier

    Eric-A-

    4 Feb 2018 User since 2017
    Edité l'an dernier par Eric-A-

    Mon code source (ecrit en kotlin) ressemble a celui ci, et la partie qui est charger récupérer les informations dans firebase se trouve dans la methode onCreateView du FragmentChambre
    package org.pbreakers.fragment import android.content.Intent import android.os.Bundle import android.support.v4.app.Fragment import android.support.v4.app.FragmentActivity import android.support.v7.widget.GridLayoutManager import android.support.v7.widget.RecyclerView import android.view.View import android.view.ViewGroup import android.view.LayoutInflater import android.widget.ImageView import android.widget.TextView import android.widget.Toast import com.squareup.picasso.Picasso import org.pbreakers.R import org.pbreakers.model.Chambre import com.google.firebase.database.* import org.pbreakers.ActivityDetail /** * Created by Eric Ampire on 24/01/2018. */ class FragmentChambre : Fragment() { private lateinit var rvChambre: RecyclerView private lateinit var databaseReference: DatabaseReference private lateinit var listChambre: MutableList<Chambre> override fun onCreateView(inflater: LayoutInflater?, container: ViewGroup?, savedInstanceState: Bundle?): View? { listChambre = arrayListOf() databaseReference = FirebaseDatabase.getInstance().getReference("chambre") databaseReference.addValueEventListener(object : ValueEventListener { override fun onCancelled(p0: DatabaseError?) { Toast.makeText(activity.baseContext, "Je ne sais pas ce qui se passe demande a Eric", Toast.LENGTH_SHORT).show() } override fun onDataChange(dataSnapshot: DataSnapshot) { if (dataSnapshot.exists()) { for (item in dataSnapshot.children) { val chambre = item.getValue(Chambre::class.java) listChambre.add(chambre) } } } }) /** * Initialisation [RecyclerView] */ initRecyclerView() return rvChambre } private fun initRecyclerView() { rvChambre = RecyclerView(context).apply { layoutManager = GridLayoutManager(context, 2) /** * chargement des donnees [FirebaseDatabase] */ adapter = ChambreAdapter(listChambre, activity) } } /** * Controller permettant de gerer la liste des chambres */ class ChambreAdapter( private val listeChambre: List<Chambre>, private val activity: FragmentActivity) : RecyclerView.Adapter<ChambreAdapter.ViewHolder>() { override fun getItemCount(): Int = listeChambre.size override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder { val view = LayoutInflater.from(parent.context).inflate(R.layout.layout_chambre, parent, false) return ViewHolder(view, listeChambre, activity) } override fun onBindViewHolder(holder: ViewHolder, position: Int) { holder.nomChambre.text = listeChambre[position].nom holder.prixChambre.text = listeChambre[position].prix holder.typeChambre.text = listeChambre[position].type /** * Chargment des images avec [Picasso] */ Picasso.with(holder.imageChambre.context) .load(listeChambre[position].image) .error(R.drawable.default_chambre) .resize(400, 400) .into(holder.imageChambre) } /** classe representant un item de la liste des */ class ViewHolder( val view: View, val data: List<Chambre>, private val activity: FragmentActivity) : RecyclerView.ViewHolder(view), View.OnClickListener { override fun onClick(v: View?) { val position = adapterPosition val chambre = data[position] val intent = Intent(activity.baseContext, ActivityDetail::class.java) /** insertion des informtions dans l'intent avant le lancement de l'activiter */ intent.putExtra("imageDetail", chambre.image) intent.putExtra("toolBarTitle", "Chambre") intent.putExtra("buttonText", "Reserver") intent.putExtra("nomDetail", chambre.nom) intent.putExtra("prixDetail", chambre.prix) intent.putExtra("descripDetail", chambre.description) intent.putExtra("typeDetail", chambre.type) activity.startActivity(intent) } init { view.setOnClickListener(this) } val nomChambre = view.findViewById<TextView>(R.id.nomChambre)!! val prixChambre = view.findViewById<TextView>(R.id.prixChambre)!! val typeChambre = view.findViewById<TextView>(R.id.typeChambre)!! val imageChambre = view.findViewById<ImageView>(R.id.imageChambre)!! } } }

    Mes informations dans firebase sont structurée de la maniere suivante ca aurai pu etre plus claire avec une image mais on fait avec ce qu'on a

    {
      "chambre" : {
        "c1" : {
          "description" : "It's now possible to iterate through the list of rooms by downloading only a",
          "image" : "http://www.auchateauclement.com/week-end-sejour-charme-ardeche/uploads/2017/03/chateau-hotel-junior-suite-ardeche-400x400.jpg",
          "nom" : "Chambre Lux",
          "prix" : "120$"
        },
        "c2" : {
          "description" : "It's now possible to iterate through the list of rooms by downloading only a few bytes per conversation",
          "image" : "http://www.auchateauclement.com/week-end-sejour-charme-ardeche/uploads/2017/03/literie-suite-anis-luxe-hotel-vals-ardeche-400x400.jpg",
          "nom" : "La Chambre Louise",
          "prix" : "80$"
        },
        "c3" : {
          "description" : "It's now possible to iterate through the list of rooms by downloading only a few bytes per conversation",
          "image" : "http://www.auchateauclement.com/week-end-sejour-charme-ardeche/uploads/2017/03/chambre-gite-duplex-design-hotel-vals-aubenas-ardeche-2-400x400.jpg",
          "nom" : "Le gîte duplex Cristal",
          "prix" : "150$"
        }
    }

    et ma classe model ressembre a celle ci

    package org.pbreakersmodel
    
    /**
     * Created by Eric Ampire on 24/01/2018.
     */
    class Chambre(var image: String, var nom: String, var prix: String, var description: String,var type: String) {
    
    	/** firebase a besoin d'un constructeur par defaut pour bien fonctionner */
        constructor() : this("", "", "", "", "")
    }

    Le problème ce que j'ai essayer plusieurs fois mais sans succès je n'arrive récupérer les info stocker dans firebase.

    Vérifie les erreurs générer dans les logs

  2. il y a 6 mois

    bernard ng

    9 Aug 2018 Modérateur Answer User since 2017

    Vérifie les erreurs générer dans les logs

 

ou S'incrire pour répondre!