Как сравнить дочерний ключ с другим дочерним ключом и получить значение у отдельных родителей в Firebase? - PullRequest
0 голосов
/ 19 декабря 2018

В настоящее время я делаю ListView для моего приложения Uber-esque.Я уже получил ключи / UID, которые существуют в одном узле, и я смог отобразить ключ в ListView

. Красные стрелки показывают те же самые UID / ключи, поэтому «Случайный случай» не должен отображаться.И вместо клавиш я хотел сделать так, чтобы "имя" (синяя стрелка / круг) отображалось в ListView.

https://i.imgur.com/fUQLT8N.png

Таким образом, вместо отображения "Gx1oJHjQL1OIXQb31zyiydNp3Vt2"Мне нужно, чтобы он отображал «Стивен Биллс».

На самом деле, я получил это https://i.imgur.com/RxRczGa.png

Я уже пытался заставить ListView отображать строку, содержащую значение дочернего элемента на основена ключе.Но то, что я получил, было просто ListView, который отображает URL Firebase (вызванный кодом ниже)

private ListView listView;
private DatabaseReference database, findSeller;
private ArrayList<String> mSellerId = new ArrayList<>();


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_freelancer_list);
    database = FirebaseDatabase.getInstance().getReference("sellerAvail");



    listView = (ListView) findViewById(R.id.newListView);

    final ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,mSellerId);
    listView.setAdapter(arrayAdapter);

    database.addValueEventListener(new ValueEventListener() {
        @Override
        public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
            for (DataSnapshot dsp : dataSnapshot.getChildren())
            {
                String value = null;
                value = (String) valueOf(dsp.getKey());


                 //get the key of the sellerAvail
                //Gx1oJHjQL1OIXQb31zyiydNp3Vt2

                //how can i search in Seller node?

                //DatabaseReference fi = FirebaseDatabase.getInstance().getReference("Users").child("Seller").child(value).child("name");
                findSeller = FirebaseDatabase.getInstance().getReference("Users").child("Seller").child(value).child("name");

                mSellerId.add(findSeller.toString());
                arrayAdapter.notifyDataSetChanged();
            }
        }

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

        }
    });

В основном то, что я хотел сделать:1. Получить ключи, которые похожи между "Продавцом" и "Продавцом Авил"2. Получить «имена» этих UID3. Показать их в ListView

Не могли бы вы помочь мне с этим?Я искал учебники в любом месте, но не могу его найти.Заранее спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...