首页 > 解决方案 > Firebase 实时数据库删除前 20 个项目

问题描述

DatabaseReference newReferance = database.getReference().child("Users");
    Query query = newReferance.orderByChild("timestamp");
    query.addValueEventListener(new ValueEventListener() {
        @Override
        public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
            chatMessages.clear();
            for (DataSnapshot dataSnapshot1 : dataSnapshot.getChildren()) {

                HashMap<String, String> hashMap = (HashMap<String, String>) dataSnapshot1.getValue();
                //String userMail = hashMap.get("useremail");
                String userMessage = hashMap.get("usermessage");
                String userCt = hashMap.get("usershow");
                chatMessages.add(userCt + ": " + userMessage);
                if (chatMessages.size() >= 10){
                    for (int i= 0; i < 5; i++){
                        //HOW ????
                    }
                }
                recyclerAdapter.notifyDataSetChanged();

            }
        }

嗨亲爱的伙计们。如何选择和删除实时数据库中的前 5 个数据?当 ArrayList 达到一定限制时,我想从数据库中删除前 5 个数据。如果您能帮助解决问题,我将不胜感激。

标签: javaandroidfirebasefirebase-realtime-database

解决方案


final DatabaseReference newReferance = database.getReference().child("Users");
    final Query query = newReferance.orderByChild("timestamp");
    query.addValueEventListener(new ValueEventListener() {
        @Override
        public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
            chatMessages.clear();
            for (DataSnapshot dataSnapshot1 : dataSnapshot.getChildren()) {

                HashMap<String, String> hashMap = (HashMap<String, String>) dataSnapshot1.getValue();
                //String userMail = hashMap.get("useremail");
                String userMessage = hashMap.get("usermessage");
                String userCt = hashMap.get("usershow");
                chatMessages.add(userCt + ": " + userMessage);
                if (chatMessages.size() >= 10){
                    Query query1 = newReferance.limitToFirst(5);
                    query.addValueEventListener(new ValueEventListener() {
                        @Override
                        public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
                            database.getReference().child("Users").setValue(null);
                        }

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

                        }
                    });
                }
                recyclerAdapter.notifyDataSetChanged();

            }
        }

虽然我已经设置好了,但它都被删除了。我无法删除我想要的项目。全部清零。


推荐阅读