为了账号安全,请及时绑定邮箱和手机立即绑定

DataSnapshot同时是满的还是空的?

DataSnapshot同时是满的还是空的?

德玛西亚99 2021-04-05 13:10:11
我正在使用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的新手,这只是一个学校项目,因此解决方案是否真的很糟糕都没关系。如果可行,则可以。
查看完整描述

1 回答

  • 1 回答
  • 0 关注
  • 161 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信