public class Post {
private String title;
private String massage;
public Post() {
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getMassage() {
return massage;
}
public void setMassage(String massage) {
this.massage = massage;
}
}
public class Posts extends AppCompatActivity {
private DatabaseReference databaseReference, barRoomsCoordinates;
private FirebaseDatabase firebaseDatabase;
private List<Post> postList;
private List<String> list;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_posts);
postList = new ArrayList<>();
list = new ArrayList<>();
showAllMyPosts();
}
private void getPosts(List<String> posts) {
for (int i = 0; i < posts.size(); i++) {
databaseReference = firebaseDatabase.getReference().child("Posts").child(posts.get(i));
databaseReference.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
Post posts = dataSnapshot.getValue(Post.class);
Post post = new Post();
post.setTitle(posts.getTitle());
post.setMassage(posts.getMassage());
postList.add(post);
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
}
}
private void showAllMyPosts() {
FirebaseApp.initializeApp(Posts.this);
Handler handler = new Handler();
Runnable runnable = new Runnable() {
@Override
public void run() {
barRoomsCoordinates = firebaseDatabase.getReference().child("Posts");
barRoomsCoordinates.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
Iterator iterator = dataSnapshot.getChildren().iterator();
while (iterator.hasNext()) {
list.add(((DataSnapshot) iterator.next()).getKey());
}
getPosts(list);
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
}
};
handler.post(runnable);
}
}
這是我的數據庫結構爲什麼我從Firebase數據庫中獲取重複的數據?
Posts
Post1
message1:
"abc + something"
title1:
"abc"
Post2
message2:
"def + something"
title2:
"def"
Post3
message3:
"ghi + something"
title3:
"ghi"
我越來越重複的陣列和無法理解爲什麼 請幫助我。 我也嘗試刪除一個引用,並進行調用,但以這種方式,我無法訪問JSON的孩子。
亞歷克斯感謝您的及時回覆。 –
歡迎你Shai Shamai。 –
在第一次引用中,我正在獲取Post1,Post2,Post3列表,然後我試圖獲取每個帖子的子標題和消息。 { 「POST1」:{ 「MESSAGE1」: 「ABC +的東西」, 「TITLE1」: 「ABC」 }, 「POST2」:{ 「消息2」: 「高清+的東西」, 「標題2」 : 「DEF」 }, 「Post3」:{ 「消息3」: 「GHI +的東西」, 「TITLE3」: 「GHI」 } } –