我是firebase的新手,我无法获取键值的内容。我尝试了一些东西,但都没有成功。
有人可以帮我提取数据吗?
我的firebase数据库 - Firebase数据库结构:
我的代码 -
aFile = open("file.txt")
//x = aFile.readLine() <- reading before checking end of file condition
while !aFile.endOfFile()
//x = aFile.readLine() <- only read if you have not already read
from the file before the loop
print(x)
//x = aFile.readLine() <- if reading before checking end of file,
you will read again after printing the previous x value
end while
aFile.close()
答案 0 :(得分:1)
DatabaseReference ref=FirebaseDatabase.getInstance().getReference().child("admin").child("classPost");
ref.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for(DataSnapshot data : dataSnapshot.getChildren()){
String retrieveposts=data.child("posts").getValue().toString();
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
我假设您想要在classPost中使用帖子的值。
解释代码:
DatabaseReference ref=FirebaseDatabase.getInstance().getReference().child("admin").child("classPost");
以上是对数据库中位置的引用。所以孩子(“admin”)。孩子(“classPost”)。您指的是节点admin下的节点classPost的位置,因此使用child(node_name)
。
现在这个:
ref.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for(DataSnapshot data : dataSnapshot.getChildren()){
String retrieveposts=data.child("posts").getValue().toString();
}
}
是一个能够从数据库中检索值的侦听器。 dataSnapshot
这里是classPost
。因此,当您撰写dataSnapshot.getChildren()
时,这意味着您将获得classPost
的孩子,然后data
会在孩子内部进行迭代,从而为您提供posts
答案 1 :(得分:0)
要实现此目的,请使用以下代码:
DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference classPostRef = rootRef.child("admin").child("classPost");
ValueEventListener eventListener = new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for(DataSnapshot ds : dataSnapshot.getChildren()) {
String post = ds.child("post").getValue(String.class);
Log.d("TAG", post);
}
}
@Override
public void onCancelled(DatabaseError databaseError) {}
};
classPostRef.addListenerForSingleValueEvent(eventListener);