Как получить данные под UID для вошедшего в систему пользователя с Firebase

Я сохранил некоторые данные в узле с UID пользователя, выполнившим вход в систему, вместе с отметкой времени публикации. Мне удалось получить все данные в этом узле, но я хотел бы получить данные только для текущего пользователя, вошедшего в систему, я я пытаюсь создать что-то похожее на то, как amazon хранит товар в корзине, и когда пользователь щелкает корзину, он показывает элементы, которые они туда добавили, а не все элементы для каждого пользователя. Может ли кто-нибудь помочь мне с этой проблемой?

Как получить данные под UID для вошедшего в систему пользователя с Firebase

public void addItemToCart(){

    SimpleDateFormat formatter = new SimpleDateFormat(" HH:mm:ss ");
    Date date = new Date(System.currentTimeMillis());
    timeStamp = loggedInUserId + formatter.format(date);


    userDictionary.put("itemPrice", selectedPrice);
    userDictionary.put("productname",productNameText);
    userDictionary.put("description", selectedStringProductDescrtipon);
    userDictionary.put("uid",loggedInUserId);
    userDictionary.put("productImage", selectedImage);
    userDictionary.put("datee",date.toString());
    userDictionary.put("name",loggedInUserName);
    userDictionary.put("timestamp",timeStamp);




    uploadPostRef.child("Cart").child(timeStamp).setValue(userDictionary).addOnSuccessListener(new OnSuccessListener<Void>() {
        @Override
        public void onSuccess(Void unused) {
            Log.i("sucessfully added","sucesssfully added to cart..");
            getLoggedInUserData();

        }
    });
    numberInCartIv.setVisibility(View.VISIBLE);

    public void downloadCartData(){
        cartDb.child("Cart").addListenerForSingleValueEvent(new ValueEventListener() {
            @Override
            public void onDataChange(DataSnapshot dataSnapshot) {
                for (DataSnapshot data : dataSnapshot.getChildren()) {
                    if (data.exists()) {

                        Log.i("data",data.toString());

//                        cartModel = data.getValue(CartModel.class);
//                        cartModelArrayList.add(cartModel);
//                        LinearLayoutManager horizontalLayoutManager = new LinearLayoutManager(getContext(), LinearLayoutManager.VERTICAL, false);
//                        cartRecyleView.setLayoutManager(horizontalLayoutManager);
//                        cartAdapter  = new CartAdapter(cartModelArrayList, getContext());
//                        cartRecyleView.setAdapter(cartAdapter);


                    } else {
                        Log.i("error", "Error Loading JSON data..");

                    }

                }


            }

            @Override
            public void onCancelled(DatabaseError databaseError) {
                String error = databaseError.getDetails();
                Log.i("error", error);

            }
        });

    }
Основы программирования на Java
Основы программирования на Java
Java - это высокоуровневый объектно-ориентированный язык программирования, основанный на классах.
Концепции JavaScript, которые вы должны знать как JS программист!
Концепции JavaScript, которые вы должны знать как JS программист!
JavaScript (Js) - это язык программирования, объединяющий HTML и CSS с одной из основных технологий Всемирной паутины. Более 97% веб-сайтов используют...
0
0
19
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий
  1. Прежде всего, вам нужно изменить json вашей БД на этот.

    Корзина -userUid -cartUid -свидание -описание -и так далее

  2. Это значит, когда вы храните предмет в Cart. Вы должны включить userUid.

    //Получение userUid final FirebaseUser firebaseUser = FirebaseAuth.getInstance().getCurrentUser(); если (firebaseUser != ноль) { окончательная строка userUid = firebaseUser.getUid(); uploadPostRef.child("Корзина").child(userUid).child(timeStamp).setValue(userDictionary).addOnSuccessListener(new OnSuccessListener() { @Override public void onSuccess (Пустота не используется) { Log.i("успешно добавлено","успешно добавлено в корзину.."); получитьЗарегистрированныеДанныеПользователя(); } }); }

  3. Чтобы получить Cart в соответствии с пользователем. Вы просто называете их так.

    общедоступная недействительная загрузкаCartData () { cartDb.child("Корзина").child(userUid).addListenerForSingleValueEvent(новый ValueEventListener() { @Override public void onDataChange(DataSnapshot dataSnapshot) { для (данные DataSnapshot: dataSnapshot.getChildren()) { если (данные.существует()) {

                         Log.i("data",data.toString());
    
                     } else {
                         Log.i("error", "Error Loading JSON data..");
    
                     }
                 }
             }
    
             @Override
             public void onCancelled(DatabaseError databaseError) {
                 String error = databaseError.getDetails();
                 Log.i("error", error);
    
             }
         });
    

    }

Другие вопросы по теме