как извлечь данные из базы огня и присвоить строку - PullRequest
0 голосов
/ 22 октября 2018

У меня есть база данных в fire-base.Так как у меня есть дочерний узел с именем "item1", под item1 у меня есть два значения

  1. name
  2. выигрыш

Я хочу получить имяиз item1, и я хочу поместить его в строку с именем «foodname».Как я могу это сделать?

FirebaseDatabase database = FirebaseDatabase.getInstance();
DatabaseReference mDatabase = FirebaseDatabase.getInstance().getReference("menu");

Здесь я пытался, но не нашел решения

String foodname; //this string should get the value as "diary milk"
mDatabase.addValueEventListener(new ValueEventListener() {
     @Override
     public void onDataChange(DataSnapshot dataSnapshot) {
     }

     @Override
     public void onCancelled(DatabaseError databaseError) {
     }
 });

image of database

Ответы [ 3 ]

0 голосов
/ 22 октября 2018

Используя приведенный ниже код, вы можете получить food name

FirebaseDatabase database = FirebaseDatabase.getInstance();
DatabaseReference mDatabase = FirebaseDatabase.getInstance().getReference("menu");

  mDatabase.addListenerForSingleValueEvent(new ValueEventListener() {
     @Override
     public void onDataChange(DataSnapshot dataSnapshot) {
            for (DataSnapshot snapshot : dataSnapshot.getChildren()) {
                   String foodName = snapshot.child("name").getValue().toString();
                   String foodPrice = snapshot.child("prize").getValue().toString();        
               }
          }

     @Override
     public void onCancelled(DatabaseError databaseError) {

          }
 });
0 голосов
/ 22 октября 2018

Для извлечения любых данных из Firebase требуется правильная ссылка на базу данных и eventListeners, которая может работать для того, что вы хотите.

Чтобы узнать больше о eventListeners , перейдите по этой ссылке.

DatabaseReference ref = FirebaseDatabase.getInstance().getReference().child("menu").child("item1");

        ref.addListenerForSingleValueEvent(new ValueEventListener() {
              @Override
              public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
// this code will get only details from item1
                   foodname = dataSnapshot.child("name").getValue(String.class);
                   String price = dataSnapshot.child("prize").getValue(Integer.class);

//if you want details from multiple items, you have to loop over the child nodes like this

                   for (DataSnapshot snapshot : dataSnapshot.getChildren()) {
                       foodname = snapshot.child("name").getValue().toString();
                       String price = snapshot.child("prize").getValue().toString();        
                   }

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

              }
        });
0 голосов
/ 22 октября 2018
    DatabaseReference mDatabase = FirebaseDatabase.getInstance().getReference();

    mDatabase.child("menu").addValueEventListener(new ValueEventListener() {
     @Override
     public void onDataChange(DataSnapshot dataSnapshot) {

         //This will loop through all items. Add variables to arrays or lists as required
         for (DatasnapShot snap : dataSnapshot.getChildren())
         {
             foodname = dataSnapshot.child("name").getValue().toString();
             String prize = dataSnapshot.child("prize").getValue().toString();
         }


     }

     @Override
     public void onCancelled(DatabaseError databaseError) {
     }
 });

Вы можете подобрать каждого ребенка по отдельности, например.Или вы можете использовать Model или Hashmap для извлечения всех данных, а затем извлекать данные, которые вы хотите, на основе ключа

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