如何从onDataChange返回值?

时间:2017-05-24 01:35:17

标签: android firebase firebase-realtime-database

我想在我的数据库中获取单个值,但我发现很难传递单个字符串。这是我的代码:

FirebaseUser user = firebaseAuth.getCurrentUser();
            databaseReference = FirebaseDatabase.getInstance().getReference("USERS").child(user.getUid()).child("name");

            databaseReference.addValueEventListener(new ValueEventListener() {
                @Override
                public void onDataChange(DataSnapshot dataSnapshot) {
                    String name = (String) dataSnapshot.getValue();
                    editTextName.setText(name);

                }

                @Override
                public void onCancelled(DatabaseError databaseError) {

                }
            });

            String name2 = editTextName.getText().toString().trim();

如何在此之外访问字符串名称? 我编辑了我的代码说

    invoke virtual method 'android.text.Editable android.widget.EditText.getText()' on a null object reference

1 个答案:

答案 0 :(得分:0)

简短回答是一个成员变量,但是在onDataChange方法实际分配它之前它是空的(如果你没有网络连接,它可能永远不会)

你需要什么价值?在TextView中?只需直接从onDataChange

编辑TextView即可

需要更复杂的东西,从onDataChange调用一个单独的方法并传入你的参数。

不要强迫自己回到同步代码