如何获取添加到数据库的最后一个节点的值

时间:2017-04-21 14:21:31

标签: java android firebase onclick firebase-realtime-database

我正在尝试访问上次添加的Firebase节点中的某个值。在我的数据库中,我有一组客户端,可以通过我的应用程序添加到。在客户端内部有一条名为'clientName'的信息。我想得到这个价值。

enter image description here

一旦我得到了价值,我就试着给出一个显示价值的祝酒词。

这是我的按钮的onClick方法中的代码。我不确定为什么它不起作用。如果你知道我可以做的另一种方式或修复我当前代码的方法,我真的很感激!

先谢谢你们!

my_button[bt].setOnClickListener(new View.OnClickListener() {
                        @Override
                        public void onClick(View v) {
                            if (my_button[Index].getId() == ((ImageButton) v).getId()) {
                                String bla = (String) getIntent().getExtras().get("id");
                                String address = "https://console.firebase.google.com/project/cssecond-92a2d/database/data/clients/" +bla+"/clientName";
                                Firebase ref = new Firebase(address);
                                ref.addListenerForSingleValueEvent(new ValueEventListener() {
                                    @Override
                                    public void onDataChange(com.firebase.client.DataSnapshot dataSnapshot) {
                                        String value = (String) dataSnapshot.getValue();
                                        Toast.makeText(HomePageNews.this,"In your hands you have: "+ value ,Toast.LENGTH_LONG).show();

                                    }

                                    @Override
                                    public void onCancelled(FirebaseError firebaseError) {

                                    }
                                });

                            }
                        }
                    });

1 个答案:

答案 0 :(得分:1)

代码中的一切看起来都很好。问题是这行代码:

String bla = (String) getIntent().getExtras().get("id");

intent返回的ID为null,因此您的reference也是null。为了解决这个问题,您需要更改代码以从之前的活动中获得正确的值,而不是它应该工作的。