2017-10-15 6 views
1

메신저 firebase에서 내 데이터베이스의 데이터를 검색합니다. 그리고 shoscription herew이 오류까지 아무도 나를 도울 수 있습니까? 이 내 mainactivity.java입니다 :com.google.firebase.database.databaseexception : firebase 데이터베이스 오류 : 사용 권한이 거부되었습니다.

package com.example.infamouslegend.myapplication; 

import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.support.v7.widget.DefaultItemAnimator; 
import android.support.v7.widget.GridLayoutManager; 
import android.support.v7.widget.LinearLayoutManager; 
import android.support.v7.widget.RecyclerView; 
import android.util.Log; 
import android.view.View; 
import android.widget.Button; 
import android.widget.Toast; 

import com.google.firebase.database.DataSnapshot; 
import com.google.firebase.database.DatabaseError; 
import com.google.firebase.database.DatabaseReference; 
import com.google.firebase.database.FirebaseDatabase; 
import com.google.firebase.database.ValueEventListener; 

import java.util.ArrayList; 
import java.util.List; 

public class MainActivity extends AppCompatActivity { 

    FirebaseDatabase database; 
    DatabaseReference myRef ; 
    List<FireModel> list; 
    RecyclerView recycle; 
    Button view; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     view = (Button) findViewById(R.id.view); 
     recycle = (RecyclerView) findViewById(R.id.recycle); 
     database = FirebaseDatabase.getInstance(); 
     myRef = database.getReference("Complaints"); 

     myRef.addValueEventListener(new ValueEventListener() { 
      @Override 
      public void onDataChange(DataSnapshot dataSnapshot) { 
       // This method is called once with the initial value and again 
       // whenever data at this location is updated. 

       list = new ArrayList<FireModel>(); 
       for(DataSnapshot dataSnapshot1 :dataSnapshot.getChildren()){ 

        FireModel value = dataSnapshot.getValue(FireModel.class); 
        FireModel fire = new FireModel(); 
        String Description = value.getDescription(); 
        String Date = value.getDate(); 
        String MediaURL = value.getMediaURL(); 
        fire.setDescription(Description); 
        fire.setDate(Date); 
        fire.setMediaURL(MediaURL); 
        list.add(fire); 

       } 

      } 

      @Override 
      public void onCancelled(DatabaseError error) { 
       // Failed to read value 
       Log.w("Hello", "Failed to read value.", error.toException()); 
       Toast.makeText(MainActivity.this, "Failed to read value !" + error.toException(), Toast.LENGTH_SHORT).show(); 
      } 
     }); 


     view.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 




       RecyclerAdapter recyclerAdapter = new RecyclerAdapter(list,MainActivity.this); 
       RecyclerView.LayoutManager recyce = new GridLayoutManager(MainActivity.this,2); 
       /// RecyclerView.LayoutManager recyce = new LinearLayoutManager(MainActivity.this); 
       // recycle.addItemDecoration(new GridSpacingItemDecoration(2, dpToPx(10), true)); 
       recycle.setLayoutManager(recyce); 
       recycle.setItemAnimator(new DefaultItemAnimator()); 
       recycle.setAdapter(recyclerAdapter); 




      } 
     }); 


    } 
} 

이 내 firemodel.java입니다 :

package com.example.infamouslegend.myapplication; 

/** 
* Created by Infamous Legend on 10/15/2017. 
*/ 

public class FireModel { 

    public String Description; 
    public String Date; 
    public String MediaURL; 


    public String getDescription() { 
     return Description; 
    } 

    public void setDescription(String description) { 
     this.Description = description; 
    } 

    public String getDate() { 
     return Date; 
    } 

    public void setDate(String date) { 
     this.Date = date; 
    } 

    public String getMediaURL() { 
     return MediaURL; 
    } 

    public void setMediaURL(String MediaURL) { 
     this.MediaURL = MediaURL; 
    } 
} 

내 recycleradapter.java :

package com.example.infamouslegend.myapplication; 

import android.content.Context; 
import android.support.v7.widget.RecyclerView; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.ViewGroup; 
import android.widget.ImageView; 
import android.widget.TextView; 

import com.squareup.picasso.Picasso; 

import java.util.List; 

/** 
* Created by Infamous Legend on 10/15/2017. 
*/ 

public class RecyclerAdapter extends RecyclerView.Adapter<RecyclerAdapter.MyHoder>{ 

    List<FireModel> list; 
    Context context; 

    public RecyclerAdapter(List<FireModel> list, Context context) { 
     this.list = list; 
     this.context = context; 
    } 



    @Override 
    public MyHoder onCreateViewHolder(ViewGroup parent, int viewType) { 

     View view = LayoutInflater.from(context).inflate(R.layout.card,parent,false); 
     MyHoder myHoder = new MyHoder(view); 


     return myHoder; 
    } 

    @Override 
    public void onBindViewHolder(MyHoder holder, int position) { 

     FireModel mylist = list.get(position); 
     holder.Description.setText(mylist.getDescription()); 
     holder.Date.setText(mylist.getDate()); 
     //holder.MediaURL.setText(mylist.getMediaURL()); 
     //Picasso.with(context).load(MediaURL.get(position).getMediaURL()).resize(120, 60).into(MyHoder.MediaURL); 

    } 

    @Override 
    public int getItemCount() { 

     int arr = 0; 

     try{ 
      if(list.size()==0){ 

       arr = 0; 

      } 
      else{ 

       arr=list.size(); 
      } 



     }catch (Exception e){ 



     } 

     return arr; 

    } 

    class MyHoder extends RecyclerView.ViewHolder{ 
     TextView Description,Date; 
     //ImageView MediaURL; 

     public MyHoder(View itemView) { 
      super(itemView); 
      Description = (TextView) itemView.findViewById(R.id.vname); 
      Date= (TextView) itemView.findViewById(R.id.vemail); 
      //MediaURL= (ImageView) itemView.findViewById(R.id.thumbnail); 

     } 
    } 

} 

사람이 날이 도와 드릴까요? 내가 firebase 데이터베이스에서 데이터를 recoverview로 cardview로 가져 오려고 시도하고있다. 사전

감사이 내 중포 기지 실시간 데이터베이스 규칙입니다 :

올바르게 내가 구글 - service.json을 다시 다운로드하고 기존에 대체 할 중포 기지와 연결하는 응용 프로그램을 구성한 경우
{ 
    "rules": { 
    ".read": true, 
    ".write":true 
    } 
} 

답변

0
+0

답장을 보내 주셔서 감사합니다. google-service.json을 다운로드합니다. 아직도 나는 동일한 오류가 있습니다. –

+0

고마워 형, 벌써 잡았어. –

관련 문제