編集:retrieveData()を更新しました。これで、私のメソッドは、onChildAdded()内のdbに正しい量の要素を表示しますが、postSnapshot.getValue(Info.class)に情報ポストを割り当てようとするとエラーが発生します。ここに私の情報クラスは、セッター、ゲッターなどなしでデータベースからの読み取り中にFirebaseの権限が拒否されましたが、書き込みできます(Android)
public Info(String question,String answer,String a,String b,String c,String d){
this.question=question;
this.a=a;
this.b=b;
this.c=c;
this.d=d;
this.answer=answer;
}
public Info(){
}
}
public void retrieveData(){
Log.e("burdayım sa","saaaaaaaaaaa");
databaseReference.addChildEventListener(new ChildEventListener() {
@Override
public void onChildAdded(DataSnapshot dataSnapshot, String s) {
Log.e("Count " ,""+dataSnapshot.getChildrenCount());
for (DataSnapshot postSnapshot: dataSnapshot.getChildren()) {
Info post = postSnapshot.getValue(Info.class);
Log.e("Get Data", post.getQuestion());
}
}
@Override
public void onChildChanged(DataSnapshot dataSnapshot, String s) {
Log.e("Count " ,""+dataSnapshot.getChildrenCount());
for (DataSnapshot postSnapshot: dataSnapshot.getChildren()) {
Info post = postSnapshot.getValue(Info.class);
Log.e("Get Data", post.getQuestion());
}
}
@Override
public void onChildRemoved(DataSnapshot dataSnapshot) {
}
@Override
public void onChildMoved(DataSnapshot dataSnapshot, String s) {
}
@Override
public void onCancelled(DatabaseError databaseError) {
Log.e("The read failed: " ,databaseError.getMessage());
}
});
}
@Override
public void onCancelled(FirebaseError firebaseError) {
Log.e("The read failed: " ,firebaseError.getMessage());
}
});
}
これはエラーです:com.google.firebase.database.DatabaseException:com.example入力するjava.lang.String型のオブジェクトを変換することはできませんが.sahilliolu.rqagame.Info
だから、これはデータを受信するための私のコードです。私は以前のアクティビティで認証を処理し、このアクティビティから私のDBに物事を書き込むことができます(私はそのためにfirebaseオブジェクトを使用しません)。しかし、オブジェクトを取得しようとすると、許可が拒否されます。これをどうすれば解決できますか?ここで私はdbに書き込む方法です。
firebaseAuth=FirebaseAuth.getInstance();
if(firebaseAuth.getCurrentUser()==null){
finish();
startActivity(new Intent(this,LoginActivity.class));
}
FirebaseUser user=firebaseAuth.getCurrentUser();
databaseReference= FirebaseDatabase.getInstance().getReference().child("questions");
Info info=new Info(question,answer,a,b,c,d);
newDatabaseReference=databaseReference.push();
newDatabaseReference.setValue(info);
Toast.makeText(getApplicationContext(),"Your question is created",Toast.LENGTH_SHORT).show();
から構成されていない、間違ったノードを参照していますか? –
{ "ルール":{ ".read ": "!AUTH =ヌル"、 " .WRITE": "!AUTH = null" の }} – Freshia
それはおそらくデフォルトですので、私はfirebaseに新しいです。 DBから読み込もうとする私のfirebase変数には権限がないので、私は失敗すると思います。 – Freshia