Android Firebase — как отобразить информацию о пользователях из firebase. Пользователь отображается в массиве, а затем хочет, чтобы информация отображалась в другом действии

#android #firebase

#Android #firebase

Вопрос:

У меня мои пользователи отображаются в массиве, и когда я нажимаю на элемент в массиве, я хочу, чтобы он привел меня к новому действию и отображал информацию об определенном элементе (пользователях) в текстовом представлении. У меня работает имя, но отображаемая биография — это биография зарегистрированных пользователей. Кто-нибудь может предложить решение?

Это массив

Это второе действие, в котором имя и изображение отображаются идеально, но мне нужно вызвать биографию из базы данных в реальном времени, вот где проблема

Смотрите Код:

1-е действие:

flingContainer.setOnItemClickListener(новый SwipeFlingAdapterView.OnItemClickListener() { @Override

     public void onItemClicked(int itemPosition, Object dataObject) {
                Toast.makeText(SwipeActivity.this, "clicked", Toast.LENGTH_SHORT).show();
                cards UserObject = (cards) dataObject;

                if(userType.equals("Dog Walker")){
                Intent i = new Intent(getApplicationContext(), ViewDogProfile.class);
                i.putExtra("UserObject", UserObject);
                startActivity(i);}

                if(userType.equals("Dog Owner")){
                    Intent i = new Intent(getApplicationContext(), ViewWalkerProfile.class);
                    i.putExtra("UserObject", UserObject);
                    startActivity(i);}

2nd activity:
 @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_view_walker_profile);



        Intent i = getIntent();
        cards mUserObject = (cards)i.getSerializableExtra("UserObject");

        mName = findViewById(R.id.tvName);
        mBio = findViewById(R.id.tvBio);
        mImage = findViewById(R.id.imageZoom);
        mName.setText(mUserObject.getFname());

        if(!mUserObject.getProfileImageUrl().equals("default"))
            Glide.with(getApplicationContext()).load(mUserObject.getProfileImageUrl()).into(mImage);

    FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser();
    String userid = user.getUid();
    DatabaseReference reference = FirebaseDatabase.getInstance().getReference("Users");
        reference.child(userid).addListenerForSingleValueEvent(new ValueEventListener() {
        @Override
        public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
            if (dataSnapshot.exists() amp;amp; dataSnapshot.getChildrenCount() > 0) {
                Map<String, Object> map = (Map<String, Object>) dataSnapshot.getValue();
                if (map.get("bio") != null) {
                    bio = map.get("bio").toString();
                    mBio.setText(bio);

                }

            }
 

Комментарии:

1. Что именно в этом коде работает не так, как вы ожидаете? Расскажите нам, что не так с общим кодом. У вас есть какие-либо ошибки?

2. Привет, Алекс, итак, на данный момент у меня есть пользователь, отображаемый в массиве с его именем и изображением профиля, и я передаю его в новое действие. Затем я хочу получить данные о пользователях из firebase, но я не уверен, как вызвать данные о пользователях из firebase, поскольку этот пользователь не вошел в систему. Я не уверен, как настроить ссылку на базу данных для массива, когда в нем несколько пользователей, все, кто не вошел в систему. Итак, я хочу, чтобы сведения о конкретных пользователях, которые отображаются в массиве в текущее время, передавались в другое действие.

3. Пожалуйста, отредактируйте свой вопрос и добавьте структуру своей базы данных в виде файла JSON или, по крайней мере, скриншота и укажите точные данные, которые вы хотите получить.