Получить одно значение из Firebase против идентификатора - PullRequest
0 голосов
/ 21 марта 2019

У меня проблема при получении значения "rate_perltr" для идентификатора пользователя, который я не смог получить до сих пор, я пробовал все пути, но все еще получаю ошибку.

    myDatabaseRateFetch = FirebaseDatabase.getInstance().getReference("Customers");

customerName.setOnKeyListener (новое представление.OnKeyListener () {

        public boolean onKey(View v, int keyCode, KeyEvent event) {
            myDatabaseRateFetch.orderByChild("cust_id").equalTo(7040).addValueEventListener(new ValueEventListener() {
                @Override
                public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
                    try
                    {
                        String ratePerLtr = dataSnapshot.getValue(String.class);
                        Rate rate = dataSnapshot.getValue(Rate.class);
                        rate_fetch = rate.getRate_perltr();

                    }catch (Exception e)
                    {
                        Toast.makeText(MainActivity.this, ""+e.getMessage(), Toast.LENGTH_SHORT).show();
                    }
                }
                @Override
                public void onCancelled(@NonNull DatabaseError databaseError) {

                    Toast.makeText(MainActivity.this, ""+databaseError.toString()+"", Toast.LENGTH_SHORT).show();
                }
            });

            rate.setText(Html.fromHtml(" "+ String.valueOf(rate_fetch) +""));
            return false;
        }
    });
}

Пакет классов модели класса com.example.wms;

открытый класс Оценить {

private double rate_perltr;

public Rate()
{

}

public Rate(double rate_perltr) {
    this.rate_perltr = rate_perltr;
}

public double getRate_perltr() {
    return rate_perltr;
}

public void setRate_perltr(double rate_perltr) {
    this.rate_perltr = rate_perltr;
}

Ответы [ 3 ]

0 голосов
/ 21 марта 2019

попробуйте это

 private void onDataChange(DataSnapshot datasnapshot){
    for(DataSnapshot snapshot : datasnapshot.getChildren){
       Rate rateFetch = snapshot.getValue(Rate.class);
       rateF[0] = ratefetch.getRate_perltr();
    }
 }
0 голосов
/ 21 марта 2019

Попробуй это.Если вы просто хотите получить результат для поля из вашей таблицы Firebase, вы можете сделать это с помощью метода onDataChange ()

public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
    Rate r = new Rate(); //   

    try {
      r.setVar((String) dataSnapshot.child("var").getValue()); //var is the firebase field
    } catch (Exception e) {
      r.setVar("whatever you want here");
    }
}

Если вы хотите заполнить модель результатом Firebase, убедитесь, что этот экземпляримена переменных совпадают с полями в таблице firebase, тогда вы можете сделать это:

public void onDataChange(@NonNull DataSnapshot datasnapshot){
   for(DataSnapshot snapshot : datasnapshot.getChildren){
      Rate rate = snapshot.getValue(Rate.class);
      //then get any variable you want from rate
   }
}
0 голосов
/ 21 марта 2019

Похоже, что есть проблема с Rate моделью. Невозможно отобразить ваши данные о базе данных на вашу Rate модель.

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