これは私の現在のコードですが、動作しません。Firebaseリアルタイムデータベースを使用して変更を聞かずに単一の文字列値を取得する
私はFirebaseリアルタイムデータベースに
を使用して変更をリッスンせずに、単一の文字列値(データ)を取得しようとしています。しかし、私はこのコードを実行するたびに、私は[0]ヌルとして電子メールを取得します。
また、Log.e("Email#1", "hello");
は私のログカットには表示されないので、実際にはaddListenerForSingleValueEvent()
に入ることはありません。
username=(EditText)findViewById(R.id.username);
password=(EditText)findViewById(R.id.password);
Firebase.setAndroidContext(this);
final Button login=(Button)findViewById(R.id.loginbtn);
final Firebase ref=new Firebase("//fir-learn-4991c.firebaseio.com/Users/Sriharsha/email");
//assert login != null;
assert login != null;
login.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
login.setText("Loading...");
final FirebaseDatabase database = FirebaseDatabase.getInstance();
DatabaseReference dref=database.getReference("email");
final String user=username.getText().toString();
final String[] email = new String[1];
dref.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(com.google.firebase.database.DataSnapshot dataSnapshot) {
Message post = dataSnapshot.getValue(Message.class);
Log.e("Email#1","hello yo");
//System.out.println(post);
//Map<String, Object> newPost = (Map<String, Object>) dataSnapshot.getValue();
email[0]=post.getEmail();
}
@Override
public void onCancelled(DatabaseError databaseError) {
System.out.println("The read failed: " + databaseError.getCode());
}
});
これはクラスです:メッセージ: -
public class Message {
private String email;
public Message(){
}
public void message(String email)
{
this.email=email;
}
public String getEmail()
{
return email;
}
}
そして、これが私のFirebaseデータベースです: Firebase database picture
データベースのルートに既定のポイントでDREF。これを試してください:DatabaseReference dref = database.getReference(); dref.child( "Users")。addListenerForSingleValueEvent –