Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/398.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/200.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Firebase数据库:如何获取密钥并加入?_Java_Android_Firebase_Firebase Realtime Database - Fatal编程技术网

Java Firebase数据库:如何获取密钥并加入?

Java Firebase数据库:如何获取密钥并加入?,java,android,firebase,firebase-realtime-database,Java,Android,Firebase,Firebase Realtime Database,我想使用Firebases数据库中存储的数据创建一个重复的recycler视图,但问题是我必须加入,我不知道如何在我的情况下这样做 我希望获取请求者键值下的数据,并希望使用用户键值数据。我想做的是只在请求者用户id下查找,并获取数据全名和图像 也许它需要加入?我该怎么做 这是我获取请求者下数据的片段 package com.example.together.fragment; public class PetchingLoungeFragment extends Fragment {

我想使用Firebases数据库中存储的数据创建一个重复的recycler视图,但问题是我必须加入,我不知道如何在我的情况下这样做

我希望获取请求者键值下的数据,并希望使用用户键值数据。我想做的是只在请求者用户id下查找,并获取数据全名和图像

也许它需要加入?我该怎么做

这是我获取请求者下数据的片段

package com.example.together.fragment;


public class PetchingLoungeFragment extends Fragment {

    private static final String TAG = "PetFirendsFragment";

    RecyclerView recyclerView;
    PetchingLoungeAdapter petchingLoungeAdapter;
    List<Lounge> requestorUserList;
    FirebaseUser firebaseUser;



    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
    {

        Log.d(TAG, "분양키 리스트 목록처음"+requestorUserList);

        View view =  inflater.inflate(R.layout.fragment_pet_firends, container, false);

        recyclerView = view.findViewById(R.id.recycler_view);
        recyclerView.setHasFixedSize(true);



        firebaseUser = FirebaseAuth.getInstance().getCurrentUser();

        DatabaseReference reference = FirebaseDatabase.getInstance().getReference("PetchingBunyang").child(firebaseUser.getUid()).child("Requestor");
        reference.addValueEventListener(new ValueEventListener() {
            @Override
            public void onDataChange(@NonNull DataSnapshot dataSnapshot)
            {


                for (DataSnapshot childSnapshot : dataSnapshot.getChildren())
                {
                    Lounge lounge = childSnapshot.getValue(Lounge.class);
                    String key = childSnapshot.getKey();

                    Log.d(TAG, "라운지키"+key);

                    //각 신청키
                    lounge.setRequestorId(key);

                    requestorUserList.add(lounge);

                    Log.d(TAG, "신청자키: "+requestorUserList);
                    Log.d(TAG, "신청: "+lounge);


                }


                Collections.reverse(requestorUserList);
                petchingLoungeAdapter.notifyDataSetChanged();

            }

            @Override
            public void onCancelled(@NonNull DatabaseError databaseError) {

            }
        });



        LinearLayoutManager linearLayoutManager = new LinearLayoutManager(getContext());
        recyclerView.setLayoutManager(linearLayoutManager);
        requestorUserList = new ArrayList<>();
        petchingLoungeAdapter = new PetchingLoungeAdapter(getContext(), requestorUserList);
        recyclerView.setAdapter(petchingLoungeAdapter);



        return view;


    }


}

package com.example.together.adapter;

public class PetchingLoungeAdapter extends RecyclerView.Adapter<PetchingLoungeAdapter.MyViewHolder> {


    private static final String TAG = "PetchingBunyangAdapter";

    FirebaseUser firebaseUser;
    DatabaseReference reference;

    Context mContext;
    List<Lounge> mLounge;

    public PetchingLoungeAdapter(Context mContext, List<Lounge> mLounge) {
        this.mContext = mContext;
        this.mLounge = mLounge;
    }



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

        View view = LayoutInflater.from(mContext).inflate(R.layout.list_petching_lounge, parent, false);
        return new PetchingLoungeAdapter.MyViewHolder(view);

    }

    @Override
    public void onBindViewHolder(MyViewHolder viewHolder, int position)
    {

        final Lounge lounge = mLounge.get(position);
        getRequestorUserInfo(lounge.getRequestorId(), viewHolder.img_requestor, viewHolder.requestor_name);



        viewHolder.img_requestor.setOnClickListener(new View.OnClickListener()
        {
            @Override
            public void onClick(View v)
            {
                Intent intent = new Intent(v.getContext(), PetchingBunyangDetailInfo.class);

               // intent.putExtra("petBunyangId",mUser.get(position).getPetBunyangId());

                mContext.startActivity(intent);


            }
        });

    }

    @Override
    public int getItemCount()
    {
        return mLounge.size();
                //mPetchingLounge.size();
    }



    public class MyViewHolder extends RecyclerView.ViewHolder
    {

        public Button allow, refuse;
        public ImageView img_requestor;
        public TextView requestor_name;

        public MyViewHolder(View itemView)
        {
            super(itemView);

            img_requestor = itemView.findViewById(R.id.img_requestor);

            allow = itemView.findViewById(R.id.allow);
            refuse = itemView.findViewById(R.id.refuse);

            requestor_name = itemView.findViewById(R.id.requestor_name);


        }
    }



    // 펫 정보 이름, 나이, 견종, 성별,
    private void getRequestorUserInfo(String petbunyangid, final ImageView imageView, final TextView petName)
    {


        firebaseUser = FirebaseAuth.getInstance().getCurrentUser();

        DatabaseReference reference = FirebaseDatabase.getInstance().getReference("Users").child(firebaseUser.getUid()).child("Requestor").child(petbunyangid);
        reference.addValueEventListener(new ValueEventListener() {
            @Override
            public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
                Lounge lounge = dataSnapshot.getValue(Lounge.class);

                lounge.getRequestorId();

            }

            @Override
            public void onCancelled(@NonNull DatabaseError databaseError) {

            }
        });

    }



}
package com.example.together.fragment;
公共类PetchingLoungeFragment扩展了片段{
私有静态最终字符串TAG=“PetFirendsFragment”;
回收视图回收视图;
小矮人小矮人;
列表请求者用户列表;
FirebaseUser FirebaseUser;
@凌驾
CreateView上的公共视图(布局、充气机、视图组容器、捆绑包保存状态)
{
Log.d(标记,“분양키 리스트 목록처음"+请求者用户列表);
视图=充气机。充气(R.layout.fragment\u pet\u firends,container,false);
recyclerView=view.findViewById(R.id.recycler\u视图);
recyclerView.setHasFixedSize(true);
firebaseUser=FirebaseAuth.getInstance().getCurrentUser();
DatabaseReference=FirebaseDatabase.getInstance().getReference(“PetchingBunyang”).child(firebaseUser.getUid()).child(“请求者”);
addValueEventListener(新的ValueEventListener(){
@凌驾
public void onDataChange(@NonNull DataSnapshot DataSnapshot)
{
对于(DataSnapshot childSnapshot:DataSnapshot.getChildren())
{
Lounge Lounge=childSnapshot.getValue(Lounge.class);
String key=childSnapshot.getKey();
Log.d(标记,“라운지키“+键);
//각 신청키
lounge.setRequestorId(钥匙);
requestorUserList.add(休息室);
Log.d(标记,“신청자키: “+请求者用户列表);
Log.d(标记,“신청: “+休息室);
}
集合。反向(请求者用户列表);
petchingLoungeAdapter.notifyDataSetChanged();
}
@凌驾
已取消的公共void(@NonNull DatabaseError DatabaseError){
}
});
LinearLayoutManager LinearLayoutManager=新的LinearLayoutManager(getContext());
recyclerView.setLayoutManager(linearLayoutManager);
requestorUserList=新的ArrayList();
petchingLoungeAdapter=新的petchingLoungeAdapter(getContext(),requestorUserList);
recyclerView.setAdapter(petchingLoungeAdapter);
返回视图;
}
}
这是我的回收器视图适配器

package com.example.together.fragment;


public class PetchingLoungeFragment extends Fragment {

    private static final String TAG = "PetFirendsFragment";

    RecyclerView recyclerView;
    PetchingLoungeAdapter petchingLoungeAdapter;
    List<Lounge> requestorUserList;
    FirebaseUser firebaseUser;



    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
    {

        Log.d(TAG, "분양키 리스트 목록처음"+requestorUserList);

        View view =  inflater.inflate(R.layout.fragment_pet_firends, container, false);

        recyclerView = view.findViewById(R.id.recycler_view);
        recyclerView.setHasFixedSize(true);



        firebaseUser = FirebaseAuth.getInstance().getCurrentUser();

        DatabaseReference reference = FirebaseDatabase.getInstance().getReference("PetchingBunyang").child(firebaseUser.getUid()).child("Requestor");
        reference.addValueEventListener(new ValueEventListener() {
            @Override
            public void onDataChange(@NonNull DataSnapshot dataSnapshot)
            {


                for (DataSnapshot childSnapshot : dataSnapshot.getChildren())
                {
                    Lounge lounge = childSnapshot.getValue(Lounge.class);
                    String key = childSnapshot.getKey();

                    Log.d(TAG, "라운지키"+key);

                    //각 신청키
                    lounge.setRequestorId(key);

                    requestorUserList.add(lounge);

                    Log.d(TAG, "신청자키: "+requestorUserList);
                    Log.d(TAG, "신청: "+lounge);


                }


                Collections.reverse(requestorUserList);
                petchingLoungeAdapter.notifyDataSetChanged();

            }

            @Override
            public void onCancelled(@NonNull DatabaseError databaseError) {

            }
        });



        LinearLayoutManager linearLayoutManager = new LinearLayoutManager(getContext());
        recyclerView.setLayoutManager(linearLayoutManager);
        requestorUserList = new ArrayList<>();
        petchingLoungeAdapter = new PetchingLoungeAdapter(getContext(), requestorUserList);
        recyclerView.setAdapter(petchingLoungeAdapter);



        return view;


    }


}

package com.example.together.adapter;

public class PetchingLoungeAdapter extends RecyclerView.Adapter<PetchingLoungeAdapter.MyViewHolder> {


    private static final String TAG = "PetchingBunyangAdapter";

    FirebaseUser firebaseUser;
    DatabaseReference reference;

    Context mContext;
    List<Lounge> mLounge;

    public PetchingLoungeAdapter(Context mContext, List<Lounge> mLounge) {
        this.mContext = mContext;
        this.mLounge = mLounge;
    }



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

        View view = LayoutInflater.from(mContext).inflate(R.layout.list_petching_lounge, parent, false);
        return new PetchingLoungeAdapter.MyViewHolder(view);

    }

    @Override
    public void onBindViewHolder(MyViewHolder viewHolder, int position)
    {

        final Lounge lounge = mLounge.get(position);
        getRequestorUserInfo(lounge.getRequestorId(), viewHolder.img_requestor, viewHolder.requestor_name);



        viewHolder.img_requestor.setOnClickListener(new View.OnClickListener()
        {
            @Override
            public void onClick(View v)
            {
                Intent intent = new Intent(v.getContext(), PetchingBunyangDetailInfo.class);

               // intent.putExtra("petBunyangId",mUser.get(position).getPetBunyangId());

                mContext.startActivity(intent);


            }
        });

    }

    @Override
    public int getItemCount()
    {
        return mLounge.size();
                //mPetchingLounge.size();
    }



    public class MyViewHolder extends RecyclerView.ViewHolder
    {

        public Button allow, refuse;
        public ImageView img_requestor;
        public TextView requestor_name;

        public MyViewHolder(View itemView)
        {
            super(itemView);

            img_requestor = itemView.findViewById(R.id.img_requestor);

            allow = itemView.findViewById(R.id.allow);
            refuse = itemView.findViewById(R.id.refuse);

            requestor_name = itemView.findViewById(R.id.requestor_name);


        }
    }



    // 펫 정보 이름, 나이, 견종, 성별,
    private void getRequestorUserInfo(String petbunyangid, final ImageView imageView, final TextView petName)
    {


        firebaseUser = FirebaseAuth.getInstance().getCurrentUser();

        DatabaseReference reference = FirebaseDatabase.getInstance().getReference("Users").child(firebaseUser.getUid()).child("Requestor").child(petbunyangid);
        reference.addValueEventListener(new ValueEventListener() {
            @Override
            public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
                Lounge lounge = dataSnapshot.getValue(Lounge.class);

                lounge.getRequestorId();

            }

            @Override
            public void onCancelled(@NonNull DatabaseError databaseError) {

            }
        });

    }



}
package com.example.together.adapter;
公共类PetchingLoungLeadapter扩展了RecyclerView.Adapter{
私有静态最终字符串标记=“PetchingBunyangAdapter”;
FirebaseUser FirebaseUser;
数据库参考;
语境;
名单公告;
公共PetchingLoungHeadapter(上下文mContext,列表消息){
this.mContext=mContext;
this.mLounge=mLounge;
}
@非空
@凌驾
public MyViewHolder onCreateViewHolder(@NonNull ViewGroup父级,int-viewType){
视图=布局更平坦。从(mContext)。充气(R.layout.list\u petching\u lounge,parent,false);
返回新的PetchingLoungeAdapter.MyViewHolder(视图);
}
@凌驾
BindViewHolder上的公共无效(MyViewHolder viewHolder,int位置)
{
最终休息室=m休息室获得(位置);
getRequestorUserInfo(lounge.getRequestorId(),viewHolder.img_requestor,viewHolder.requestor_name);
viewHolder.img_requestor.setOnClickListener(新视图.OnClickListener()
{
@凌驾
公共void onClick(视图v)
{
Intent Intent=newintent(v.getContext(),PetchingBunyangDetailInfo.class);
//intent.putExtra(“petBunyangId”,mUser.get(position.getPetBunyangId());
mContext.startActivity(意图);
}
});
}
@凌驾
public int getItemCount()
{
返回mLounge.size();
//mPetchingLounge.size();
}
公共类MyViewHolder扩展了RecyclerView.ViewHolder
{
公共按钮允许、拒绝;
公共图像视图img_请求者;
公共文本视图请求者名称;
公共MyViewHolder(查看项目视图)
{
超级(项目视图);
img_requestor=itemView.findviewbyd(R.id.img_requestor);
allow=itemView.findviewbyd(R.id.allow);
拒绝=itemView.findViewById(R.id.Reject);
requestor_name=itemView.findviewbyd(R.id.requestor_name);
}
}
// 펫 정보 이름, 나이, 견종, 성별,
私有void getRequestorUserInfo(字符串petbunyangid、最终图像视图ImageView、最终文本视图petName)
{
firebaseUser=FirebaseAuth.getInstance().getCurrentUser();
DatabaseReference=FirebaseDatabase.getInstance().getReference(“用户”).child(firebaseUser.getUid()).child(“请求者”).child(petbunyangid);
addValueEventListener(新的ValueEventListener(){
@凌驾
public void onDataChange(@NonNull DataSnapshot DataSnapshot){
Lounge Lounge=dataSnapshot.getValue(Lounge.class);
lounge.getRequestorId();
}
@凌驾
已取消的公共void(@NonNull DatabaseError DatabaseError){
}
});
}
}
尝试以下操作:

DatabaseReference reference = FirebaseDatabase.getInstance().getReference("PetchingBunyang").child(firebaseUser.getUid()).child("Requestor");
DatabaseReference userReference = FirebaseDatabase.getInstance().getReference("Users");

reference.addValueEventListener(new ValueEventListener() {
 @Override
public void onDataChange(DataSnapshot dataSnapshot) {
for(DataSnapshot datas: dataSnapshot.getChildren()){
     for(DataSnapshot ds : datas.getChildren()){
          String id = ds.getKey();

          userReference.child(id).addValueEventListener(new ValueEventListener() {
              @Override
           public void onDataChange(DataSnapshot dataSnapshot) {
                String fullName = dataSnapshot.child("fullname").getValue(String.class);
                String imageUrl = dataSnapshot.child("imageUrl").getValue(String.class);
               }
              @Override
          public void onCancelled(@NonNull DatabaseError databaseError) { 
             throw databaseError.toException(); 
               }
           });
      }
    }
 }
   @Override
public void onCancelled(@NonNull DatabaseError databaseError) { 
     throw databaseError.toException(); 
    }
 });
首先添加对子
请求者的引用
,然后在其中循环两次,以便能够获取值为
true
用户ID
。然后在检索
用户ID
后,添加另一个引用