DataSnapshot同时是满的还是空的?

我正在使用Android Studio尝试使用Firebase数据库。我遇到了以下问题。我想为多个恐龙创建卡片(这些在Db中)。因此,我尝试使用Firebase提供的“ onChildAdded”功能。我使用DataSnapshot尝试仅添加尚未被用户“评级”的恐龙卡。(就像在人们喜欢或不喜欢恐龙的火种应用程序中看到它一样)。


这是我的代码:


public int counter = 0;

    private void getDinos() {

        final DatabaseReference dinosDb = FirebaseDatabase.getInstance().getReference().child("Users").child("Dinos");

        dinosDb.addChildEventListener(new ChildEventListener() {

            @Override

            public void onChildAdded(@NonNull DataSnapshot dataSnapshot, @Nullable String s) {

                if (dataSnapshot.exists()){

                    ArrayList<String> dinoList = new ArrayList<String>(){{ add("Allosaurus"); add("Ankylosaurus"); add("Baryonyx");add("Brachiosaurus");add("Carnotaurus");add("Dilophosaurus");add("Diplodocus");add("Gallimimus");  add("Giganotosaurus"); add("Iguanodon"); add("Megalosaurus"); add("Spinosaurus"); add("Stegosaurus"); add("Triceratops"); add("Tyrannosaurus"); add("Velociraptor");}};

                    if (!dataSnapshot.child(dinoList.get(i)).child("connections").child("like").hasChild(currentUId) && !dataSnapshot.child(dinoList.get(i)).child("connections").child("dislike").hasChild(currentUId)) {

                        Log.d("mine", "" + dataSnapshot + dataSnapshot.child(dinoList.get(counter)).child("connections").child("dislike").hasChild(currentUId));//deze shit gaat dus fout

                        cards theItem = new cards(dataSnapshot.getKey(), (String) dataSnapshot.child(dinoList.get(i)).getKey());

                        rowItems.add(theItem);

                        arrayAdapter.notifyDataSetChanged();

                    }

                    counter++;

                }

            }




如您所见,我在第10行有一个Log.d行,该行记录了当前的dataSnapshot,并在当前用户不喜欢该恐龙之后立即记录。

如果有人可以对我在这里做错的事情提供一些见解,我将不胜感激。我真的是Android Studio的新手,这只是一个学校项目,因此解决方案是否真的很糟糕都没关系。如果可行,则可以。


德玛西亚99
浏览 162回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java