データベースで単一の値を取得したいのですが、単一の文字列を渡すのが難しいです。私のコードは以下の通りです:onDataChangeから値を返す方法は?
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
Firebaseはデータを非同期に読み込みます。それを受け入れ、それに対処するためにコードを変更するのが最善です。 https://stackoverflow.com/questions/33203379/setting-singleton-property-value-in-firebase-listener –