【发布时间】:2017-03-23 11:30:38
【问题描述】:
我在从查询结果中获取密钥时遇到问题。这是我的 Firebase 数据库结构:
{
"Users" : {
"7idb6ThWR8aqmnEHFao5GRCV1kI3" : {
"dPicture" : "https://firebasestorage.googleapis.com/v0/b/parkir-ngasal.appspot.com/o/Profile_images%2Fcropped1465266876.jpg?alt=media&token=44f83fdf-935a-4b3c-8138-561dcba2fca7",
"status" : "hi my name is erik",
"uid" : "7idb6ThWR8aqmnEHFao5GRCV1kI3",
"username" : "erik"
}
},
"posts" : {
"-KfsrGsY8TWb2wiMFtAq" : {
"dPicture" : "https://firebasestorage.googleapis.com/v0/b/parkir-ngasal.appspot.com/o/Profile_images%2Fcropped1465266876.jpg?alt=media&token=44f83fdf-935a-4b3c-8138-561dcba2fca7",
"image" : "https://firebasestorage.googleapis.com/v0/b/parkir-ngasal.appspot.com/o/Post_Images%2Fcropped1354055061.jpg?alt=media&token=77fbc9ed-4356-43c1-b7bb-9563300a8b7b",
"small_title" : "tes",
"summary" : "tes",
"title" : "tes",
"uid" : "7idb6ThWR8aqmnEHFao5GRCV1kI3",
"username" : "erik"
}
}
}
我正在尝试获取KfsrGsY8TWb2wiMFtAq,但使用下面的代码
Query mThisUsersPosts;
public static final String TAG = "blah" ;
mDatabasePosts = FirebaseDatabase.getInstance().getReference().child("posts");
mThisUsersPosts = mDatabasePosts.orderByChild("uid").equalTo(mCurrentUser);
mThisUsersPosts.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
final String posts_key = dataSnapshot.getChildren().toString();
Log.d(TAG,posts_key);
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
我不明白为什么我得到随机回调而不是得到结果,例如:
com.google.firebase.database.DataSnapshot$1@cfbcf64
com.google.firebase.database.DataSnapshot$1@961642a
com.google.firebase.database.DataSnapshot$1@6f0d191
非常感谢!
【问题讨论】:
-
你可以像datasnapshot.getKey()一样从datasnapshot中获取item key;
-
嗨@Mohom.R ...尝试过...它正在返回“帖子”哈哈...太高了一级
-
我已经发了答案请看..
标签: android firebase firebase-realtime-database