我应该使用哪种方法来获取他们在身份验证期间提供的用户的电话号码

时间:2018-02-08 07:09:51

标签: java android database firebase firebase-realtime-database

DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference usersRef = rootRef.child("Users");
  ValueEventListener eventListener = new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {
            ListView listView = (ListView) rootView.findViewById(R.id.usersList);
            ArrayAdapter<String> adapter;
            adapter = new ArrayAdapter<String>(getActivity(), android.R.layout.simple_list_item_1, android.R.id.text1, al);
            for(DataSnapshot ds : dataSnapshot.getChildren()) {
                name = ds.child("Name").getValue().toString();
                list_user_id = ();
//                    Log.d("TAG", name);
                al.add(name);
//                    String phonenumber =
            }
            listView.setAdapter(adapter);
        }

        @Override
        public void onCancelled(DatabaseError databaseError) {
            Toast.makeText(getActivity(),"Please Check Your Internet Connection",Toast.LENGTH_SHORT).show();
        }
    };

我希望在list_user_id中获取电话号码...用于获取当前用户电话号码我可以使用getPhoneNumber方法但我不确定如何获取与我聊天的用户号码

1 个答案:

答案 0 :(得分:0)

试试这个:

DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference usersRef = rootRef.child("Users");
ref.addValueEventListener(new ValueEventListener(){
 @Override
public void onDataChange(DataSnapshot dataSnapshot) {
for(DataSnapshot datas: dataSnapshot.getChildren()){
   String phonenumber=datas.child("phonenumber").getValue().toString();

   }
} 

  @Override
public void onCancelled(FirebaseError firebaseError) {
   }
});

由于您想获取您正在聊天的人的电话号码,因此从逻辑上您可以点击该人的姓名开始聊天,然后您可以使用该查询:

ref.orderByChild("name").equalTo(Nameyouclicked).addValueEventListener(...){..}

通过这种方式,您可以获得该名称,然后就可以获得用户ID或与该用户相关的任何内容。