编辑:我更新了retrieveData()。现在我的方法在onChildAdded()的数据库中显示正确数量的元素,但在尝试将Info post指定给postSnapshot.getValue(Info.class)时出现错误。这是我的信息类没有setter方法,getter方法等Firebase权限在尝试从db读取时被拒绝,但我可以编写(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:无法转换java.lang.String类型的对象输入com。示例.sahilliolu.rqagame.Info
所以,这是我的代码来接收数据。我在前一个活动中处理身份验证,并且可以通过此活动将事情写入我的数据库(我不使用firebase对象),但是当我尝试获取某个对象时,它拒绝了我的权限。我该如何解决这个问题?这是我如何写入数据库。
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();
2017-03-09
Freshia
+0
做你的火力地堡的规则是什么样子? –
+0
{ “规则”:{ “.read ”: “AUTH = NULL”, “ .WRITE”: “AUTH = NULL” }} –
+0
我新的火力点,因此很可能违约。我想我失败了,因为我尝试从DB读取的我的firebase变量没有授权。 –