【发布时间】:2017-04-04 18:32:43
【问题描述】:
大家好,大家好,我有一个问题,我需要将我的数据库与 Firebase 部分分开,然后我的应用就像一个“博客”,需要用“文化”“食物”或事物等部分分开像这样,我只想让一个部分仅显示该部分,而在另一个部分中仅显示该部分中发布的内容
如果您给我指示,我不知道该怎么做会很有帮助 感谢您的关注
参考代码:
// USER REFERENCES
public static DatabaseReference getUserRef(String email) {
return FirebaseDatabase.getInstance()
.getReference("Userrs")
.child(email);
}
public static FirebaseUser getCurrentUser() {
return FirebaseAuth.getInstance().getCurrentUser();
}
// POSTS REFERENCES
public static DatabaseReference getPostRef() {
return FirebaseDatabase.getInstance()
.getReference("PostKeys");
}
public static Query getPostQuery() {
return getPostRef().orderByChild("TimeCreatedKey");
}
public static DatabaseReference getMyPostRef() {
return FirebaseDatabase.getInstance().getReference("MyPosts")
.child(getCurrentUser().getEmail().replace(".", ","));
}
// USER ID
public static String getUid() {
String path = FirebaseDatabase.getInstance().getReference().push().toString();
return path.substring(path.lastIndexOf("/") + 1);
}
// RECORD
public static DatabaseReference getMyRecordRef() {
return FirebaseDatabase.getInstance().getReference(Constants.USER_RECORD)
.child(getCurrentUser().getEmail().replace(".", ","));
}
public static void addToMyRecord(String node,final String id) {
FirebaseUtils.getMyRecordRef().child(node).runTransaction(new Transaction.Handler() {
@Override
public Transaction.Result doTransaction(MutableData mutableData) {
ArrayList<String> myPostCollection;
if (mutableData.getValue() == null) {
myPostCollection = new ArrayList<>(1);
myPostCollection.add(id);
mutableData.setValue(myPostCollection);
} else {
myPostCollection = (ArrayList<String>) mutableData.getValue();
myPostCollection.add(id);
mutableData.setValue(myPostCollection);
}
return Transaction.success(mutableData);
}
@Override
public void onComplete(DatabaseError databaseError, boolean b, DataSnapshot dataSnapshot) {
}
});
}
thw JSON 存档:
{
"commentsVideos" : {
"Jojo" : {
"-KgonW-KMeWxS-JZQA7k" : {
"commentIdV" : "-KgonW-KMeWxS-JZQA7k",
"commentV" : "Jajajaja",
"timeCreatedV" : 1491239572095
},
"-KgpnaW3_QisX7LSjE9T" : {
"commentIdV" : "-KgpnaW3_QisX7LSjE9T",
"commentV" : "Alohaaaaa",
"timeCreatedV" : 1491256371764
}
}
},
"my_posts" : {
"a@a,com" : {
"-KggY-LUpys-0ZOhy8zn" : true,
"-Kgl9aYUKSRL72TcILtQ" : true,
"-KgonvtLrtYGQJlnmpO6" : true,
"-Kgpb14DgJ2qD6wWU8XM" : true
}
},
"my_postsVideos" : {
"a@a,com" : {
"-Kgkva-UzSRa0Q-Ohhy7" : true,
"-Kgkyf0TLujgvJ8OzZHc" : true,
"-Kgl6QrqVFxMy4COu-kX" : true
}
},
"posts" : {
"-KggY-LUpys-0ZOhy8zn" : {
"numComments" : 0,
"numDislikes" : 0,
"numLikes" : 0,
"postId" : "-KggY-LUpys-0ZOhy8zn",
"postImageUrl" : "post_images/image:49653",
"postText" : "Jojo",
"timeCreated" : 1491101025777
},
"-Kgl9aYUKSRL72TcILtQ" : {
"numComments" : 0,
"numDislikes" : 0,
"numLikes" : 1,
"postId" : "-Kgl9aYUKSRL72TcILtQ",
"postImageUrl" : "post_images/image:49651",
"postText" : "Xd",
"timeCreated" : 1491178516317
},
"-KgonvtLrtYGQJlnmpO6" : {
"numComments" : 0,
"numDislikes" : 0,
"numLikes" : 0,
"postId" : "-KgonvtLrtYGQJlnmpO6",
"postImageUrl" : "post_images/image:50614",
"postText" : "Xd",
"timeCreated" : 1491239682259
},
"-Kgpb14DgJ2qD6wWU8XM" : {
"numComments" : 0,
"numDislikes" : 0,
"numLikes" : 0,
"postId" : "-Kgpb14DgJ2qD6wWU8XM",
"postImageUrl" : "post_images/image:50624",
"postText" : "Xdxd",
"timeCreated" : 1491253076830
}
},
"postsV" : {
"-Kgkva-UzSRa0Q-Ohhy7" : {
"numCommentsV" : 0,
"numDislikesV" : 0,
"numLikesV" : 0,
"postIdV" : "Jojo",
"postVideoUrl" : "post_videos/40925",
"timeCreatedV" : 1491174581878
},
"-Kgkyf0TLujgvJ8OzZHc" : {
"numCommentsV" : 0,
"numDislikesV" : 0,
"numLikesV" : 0,
"postIdV" : "Juju",
"postVideoUrl" : "post_videos/40923",
"timeCreatedV" : 1491175388835
},
"-Kgl6QrqVFxMy4COu-kX" : {
"numCommentsV" : 0,
"numDislikesV" : 0,
"numLikesV" : 0,
"postIdV" : "Jajajaj",
"postVideoUrl" : "post_videos/40925",
"timeCreatedV" : 1491177686056
}
},
"posts_dislikeds" : {
"a@a,com" : {
"-KggY-LUpys-0ZOhy8zn" : true,
"-Kgpb14DgJ2qD6wWU8XM" : true,
"Juju" : true
}
},
"posts_liked" : {
"a@a,com" : {
"-KggY-LUpys-0ZOhy8zn" : true,
"-Kgpb14DgJ2qD6wWU8XM" : true
}
},
"posts_likedVideos" : {
"a@a,com" : {
"Jajajaj" : true,
"Jojo" : true,
"Juju" : true
}
},
"user_record" : {
"a@a,com" : {
"commentsVideos" : [ "-KgonW-KMeWxS-JZQA7k", "-KgpnaW3_QisX7LSjE9T" ],
"posts" : [ "-KggY-LUpys-0ZOhy8zn", "-Kgl9aYUKSRL72TcILtQ", "- KgonvtLrtYGQJlnmpO6", "-Kgpb14DgJ2qD6wWU8XM" ]
}
},
"user_recordVideos" : {
"a@a,com" : {
"postsV" : [ "-Kgkva-UzSRa0Q-Ohhy7", "-Kgkyf0TLujgvJ8OzZHc", "- Kgl6QrqVFxMy4COu-kX" ]
}
}
}
【问题讨论】:
标签: android json firebase firebase-realtime-database