Как получить информацию внутри детского firebase с Android Studio? - PullRequest
0 голосов
/ 24 октября 2018

Ссылаясь на изображение ниже.Если я хочу создать модуль для отображения всей информации о событиях, таких как registerEventName, registerEventLocation .... Как это сделать?Во второй строке указан идентификатор созданного события, за которым следует идентификатор события.Заранее спасибо.Я хочу отобразить всю информацию из списка событий, созданного всеми пользователями. Скажите, пожалуйста, нужна ли была какая-либо дополнительная информация.

Image1

package com.example.jmham.eventuser;

import android.content.Intent;
import android.support.annotation.NonNull;
import android.support.design.widget.FloatingActionButton;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.text.Editable;
import android.text.TextWatcher;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

import com.firebase.ui.database.FirebaseRecyclerOptions;
import com.bumptech.glide.Glide;
import com.example.jmham.eventuser.Model.ListInfo;
import com.firebase.ui.database.FirebaseRecyclerAdapter;
import com.google.firebase.database.DataSnapshot;
import com.google.firebase.database.DatabaseError;
import com.google.firebase.database.DatabaseReference;
import com.google.firebase.database.FirebaseDatabase;
import com.example.jmham.eventuser.ViewHolder.MenuViewHolder;
import com.firebase.ui.database.FirebaseRecyclerAdapter;
import com.google.firebase.database.DatabaseReference;
import com.google.firebase.database.FirebaseDatabase;
import com.google.firebase.database.Query;
import com.google.firebase.database.ValueEventListener;
import com.google.firebase.storage.FirebaseStorage;
import com.google.firebase.storage.StorageReference;
import com.mancj.materialsearchbar.MaterialSearchBar;
import com.example.jmham.eventuser.Model.User;
import java.util.ArrayList;
import java.util.List;

public class List_Of_Event extends AppCompatActivity {


    FirebaseDatabase database;
    DatabaseReference eventinfo;

    RecyclerView recycle_menu;
    RecyclerView.LayoutManager layoutManager;

    FirebaseStorage storage;
    StorageReference storageRef;
    EditText search_edit_text;
    FloatingActionButton search_item;
    ArrayList<String> fullNameList;
    ArrayList<String> profilePicList;
    ArrayList<String> contectNumber;
    ArrayList<String> EventId;
    ArrayList<String> EventLocation;
    ArrayList<String> EventName;
    ArrayList<String> EventRadiogroup;
    ArrayList<String> EventStartDate;

    //Search functionality
    FirebaseRecyclerAdapter<ListInfo,MenuViewHolder> searchAdapter;
    List<String> suggestList =  new ArrayList<>();
    MaterialSearchBar materialSearchBar;
    FirebaseRecyclerAdapter <ListInfo, MenuViewHolder> adapter;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_list_of_event);

        storage = FirebaseStorage.getInstance();
        storageRef = storage.getReference();

        //search_edit_text = (MaterialSearchBar) findViewById(R.id.search_edit_text);

        search_edit_text = (EditText) findViewById(R.id.search_edit_text);

        /*
        *    ArrayList<String> fullNameList;
    ArrayList<String> profilePicList;
    ArrayList<String> contectNumber;
    ArrayList<String> EventId;
    ArrayList<String> EventLocation;
    ArrayList<String> EventName;
    ArrayList<String> EventRadiogroup;
    ArrayList<String> EventStartDate;   * */
        fullNameList = new ArrayList<>();
        profilePicList = new ArrayList<>();
        contectNumber = new ArrayList<>();
        EventId = new ArrayList<>();
        EventLocation = new ArrayList<>();
        EventName = new ArrayList<>();
        EventRadiogroup = new ArrayList<>();
        EventStartDate = new ArrayList<>();
/*
        search_item.setOnClickListener(new View.OnClickListener(){

            @Override
            public void onClick(View v) {
                Intent search_bar = new Intent(List_Of_Event.this, search_bar.class);
                startActivity(search_bar);
                finish();
            }
        });  */




/*
        search_edit_text.addTextChangedListener(new TextWatcher() {
            @Override
            public void beforeTextChanged(CharSequence s, int start, int count, int after) {

            }

            @Override
            public void onTextChanged(CharSequence s, int start, int before, int count) {

            }

            @Override
            public void afterTextChanged(Editable s) {
              if (!s.toString().isEmpty()){
                  setAdapter(s.toString());
              }
            }
        });
*/




        recycle_menu = (RecyclerView) findViewById(R.id.recycle_menu);
        recycle_menu.setHasFixedSize(true);
        layoutManager = new LinearLayoutManager(this);

        recycle_menu.setLayoutManager(layoutManager);
        database  = FirebaseDatabase.getInstance();
       // eventinfo = database.getReference("ListOfEvent");
        System.out.println();
        loadMenu();
        eventinfo = FirebaseDatabase.getInstance().getReference();
        DatabaseReference ref2,ref3,ref4;
        ref2 = eventinfo.child("ListOfEvent");
        ref3 = ref2.child("ListOfEvent").child();
//DatabaseReference ref = FirebaseDatabase.getInstance().getReference().child("ChatRoom").child(str);
       ref2.addListenerForSingleValueEvent(new ValueEventListener() {
           @Override
           public void onDataChange(@NonNull DataSnapshot dataSnapshot) {


               // Result will be holded Here
               for (DataSnapshot dsp : dataSnapshot.getChildren()) {
                   EventName.add(String.valueOf(dsp.getValue())); //add result into array list

             //      Toast.makeText(List_Of_Event.this, EventName, Toast.LENGTH_SHORT).show();
           }

           }

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

           }
       });
        //System.out.println(eventinfo.child("ListOfEvent").child(RegisterEventId).child("profileImageUr").toString());

        //Search

        materialSearchBar = (MaterialSearchBar)findViewById(R.id.searchBar);
        materialSearchBar.setHint("Enter your Event");
        //materialSearchBar.setSpeechMode(false); No need, becuz we already define it at XML

        // loadSuggest();  //Write function to load Sugggest from Firebase
        // setAdapter();
        materialSearchBar.setLastSuggestions(suggestList);

        materialSearchBar.addTextChangeListener(new TextWatcher() {
            @Override
            public void beforeTextChanged(CharSequence s, int start, int count, int after) {

            }

            @Override
            public void onTextChanged(CharSequence s, int start, int before, int count) {
                // When user type theri text, we wil change list
                List<String> suggest = new ArrayList<String>();
                for (String search:suggest){
                    if(search.toLowerCase().contains(materialSearchBar.getText().toLowerCase()))
                        suggest.add(search);
                }
                materialSearchBar.setLastSuggestions(suggest);
            }

            @Override
            public void afterTextChanged(Editable s) {

            }
        });

        materialSearchBar.setOnSearchActionListener(new MaterialSearchBar.OnSearchActionListener() {
            @Override
            public void onSearchStateChanged(boolean enabled) {
                //When Search Bar is close
                //Restore original adapter

                // if(! enabled) recycle_menu.setAdapter(adapter);
            }

            @Override
            public void onSearchConfirmed(CharSequence text) {
                // When search finish
                //Show result of search adapter
                //   startSearch(text);
            }

            @Override
            public void onButtonClicked(int buttonCode) {

            }
        });

        //  setAdapter(s.toString());
    }
    /*
        private void startSearch(CharSequence text) {
            searchAdapter = new FirebaseRecyclerAdapter<ListInfo, MenuViewHolder>(
                    ListInfo.class;
                    R.layout.activity_list_of_event,
            MenuViewHolder.class,ListInfo.("registerEventName")



            ) {
                @Override
                protected void populateViewHolder(MenuViewHolder viewHolder, ListInfo model, int position) {

                }
            };
        }
    */
    /*  private void loadSuggest(){
          storageRef.orderByChild("registerEventName".equals()).addValueListener(new ValueEventListener()
                                                                {

                                                                }
          );

      } */
    private void loadSuggest(){




        eventinfo.child("ListInfo").addListenerForSingleValueEvent(new ValueEventListener(){


            @Override
            public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
                for(DataSnapshot postSnapshot:dataSnapshot.getChildren())
                {
                    ListInfo item = postSnapshot.getValue(ListInfo.class);
                    suggestList.add(item.getRegisterEventName()); // add name of food to suggest list

                }

            }

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

            }
        });
    }

    public void loadMenu(){

        Query query = eventinfo.orderByKey();
        FirebaseRecyclerOptions<ListInfo> firebaseRecyclerOptions =
                new FirebaseRecyclerOptions.Builder<ListInfo>()
                        .setQuery(query, ListInfo.class)
                        .build();

        adapter = new FirebaseRecyclerAdapter<ListInfo, MenuViewHolder>(firebaseRecyclerOptions) {


            @NonNull
            @Override
            public MenuViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
                View view = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.activity_list,viewGroup,false);
                return new MenuViewHolder(view);
            }

            @Override
            protected void onBindViewHolder(@NonNull MenuViewHolder holder, int position, @NonNull ListInfo model) {
                System.out.println("test ::"+model.getImageToUpload());

                holder.txtRegisterEventStartDate.setText(model.getRegisterEventStartDate());
                holder.txtRegisterEventName.setText(model.getRegisterEventName());
                holder.txtContact_number.setText(model.getRegisterContactNumber());
                holder.txtRegisterEventRadiogroup.setText(model.getRegisterEventRadiogroup());
                holder.txtRegisterEventLocation.setText(model.getRegisterEventLocation());
//               model = storageReference.child("profileImageUrl").child(fileName)
                System.out.println("test ::"+model.getImageToUpload());
                Glide.with(getBaseContext()).load(model.getImageToUpload()
                ).into(holder.imageView);
                System.out.println(model.getRegisterEventName());
                System.out.println(model.getImageToUpload());
//                String URL = FirebaseDatabase.getInstance().getReference().child(model.getRegisterEventId()).child("profileImageUrl");
//                System.out.println("TESTURL: "+URL);

//                Glide.with(getApplicationContext())
//                        .load(URL)
//                        .into(viewHolder.imageView);

                System.out.println(model.getRegisterEventName());
                System.out.println("Highlight" + model.getImageToUpload());

                final ListInfo clickItem = model;
            }


        };
        recycle_menu.setAdapter(adapter);
    }




    @Override
    protected void onStart() {
        super.onStart();
        adapter.startListening();
    }
    @Override
    protected void onStop() {
        super.onStop();
        adapter.stopListening();
    }


//---

}
//search_item

Ответы [ 2 ]

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

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

String currentUser = FirebaseAuth.getInstance().getCurrentUser().getUid();
databaseRef.child("ListOfEvent").child(currentUser).addListenerForSingleValueEvent(new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        for (DataSnapshot objSnapshot: dataSnapshot.getChildren()) {
        String key = objSnapshot.getKey();
                    Toast.makeText(Chat.this, key, Toast.LENGTH_SHORT).show();

           }
     }

    @Override
    public void onCancelled(DatabaseError databaseError) {

     }
 });

Надеюсь, что помощь полная.

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

Надеюсь, это поможет вам.

databaseRef.child("ListOfEvent").addListenerForSingleValueEvent(new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {

            for (DataSnapshot userIdSnapshot : dataSnapshot.getChildren()) {

                for (DataSnapshot snapshot : userIdSnapshot.getChildren()) {

                    String regEventName = snapshot.child("registerEventName").getValue().toString();
                    String regEventLoc = snapshot.child("registerEventLocation").getValue().toString();

                }
            }
        }

        @Override
        public void onCancelled(DatabaseError databaseError) {

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