Как проверить значение в пределах 2 случайных ключей в базе данных Firebase? - PullRequest
1 голос
/ 25 мая 2019

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

 dataref = FirebaseDatabase.getInstance().getReference("Users");

 @Override
 public void onDeleteClick(int position) {
    Upload selectedItem = mUploads.get(position);
    final String selectedKey = selectedItem.getKey();

    StorageReference imageRef = mStorage.getReferenceFromUrl(selectedItem.getImageUrl());
    imageRef.delete().addOnSuccessListener(new OnSuccessListener<Void>() {
        @Override
        public void onSuccess(Void aVoid) {
            dataref.addValueEventListener(new ValueEventListener() {
                @Override
                public void onDataChange(DataSnapshot dataSnapshot) {
                    for (DataSnapshot ds : dataSnapshot.getChildren()) {

                        for (DataSnapshot ds2 : ds.child("uploads").getChildren()){
                            String imgkey = (String) ds2.getKey();
                            if (imgkey.equals(selectedKey)){
                                Toast.makeText(ViewSellerProduct.this, "Item Removed", Toast.LENGTH_SHORT).show();
                                int num = (int) ds.child("sold").getValue();
                                ds.child("sold").getRef().setValue(num +1);
                                int num1 = (int) ds.child("points").getValue();
                                ds.child("points").getRef().setValue(num1 + 50);
                            }
                        }
                    }
                }

                @Override
                public void onCancelled(DatabaseError databaseError) {
                    Toast.makeText(ViewSellerProduct.this, databaseError.getMessage(), Toast.LENGTH_SHORT).show();
                    mProgressCircle.setVisibility(View.INVISIBLE);
                }
            });
            mDatabaseRef.child(selectedKey).removeValue();
            mmDatabaseRef.child(selectedKey).removeValue();
        }
    });
}

моя база данных:

  "Users"
         -RANDOM KEY
                  -address
                  -cty
                  -name
                  -points
                  -sold
                        -uploads
                             -RANDOM KEY
                                    - imgurl
                                    - name

По сути, я хочу увеличить продажи на 1 и на 50 пунктов при нажатии на кнопку удаления.

Обратите внимание, что я не могу получить текущий идентификатор пользователя, так как пользователь будет зарегистрирован как другой аккаунт.

ВЫХОД ПЕЧАТИ IMGKEY И SLECTEDKEY:

             2019-05-25 23:22:21.279 2450-2450/com.example.re I/System.out: 
             imgkey=-LffFH8AMu_71RFeaHup              
             2019-05-25 23:22:21.280 2450-2450/com.example.re 
             I/System.out: slectedkey = -LfkRLtEiWCyqz51oSY2
             2019-05-25 23:22:21.281 2450-2450/com.example.re I/System.out: 
             imgkey=-LfiHUz4wwrt0IT1tPM4
             2019-05-25 23:22:21.281 2450-2450/com.example.re I/System.out: 
             slectedkey = -LfkRLtEiWCyqz51oSY2
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...