在我的代码中,我使用视为(ID)的子项推送数据,每个onfresh方法都会使用setvalue方法更新值(val1,val2,val3)。但是在推送数据时,它会以引用ID的升序存储数据(每次将ID作为子级创建时,如果不存在子级,则如果存在则将更新该值)。因此,我想存储这种类型的数据,然后在推入数据时,必须像mdatarefrence.push()
方法一样按顺序存储数据。
mFireDatabase = FirebaseDatabase.getInstance();
databaseReference = mFireDatabase.getReference().child("Matches").child("Match_"+getmatch_id).child("commentry");
mCommentryAdpter = new CommentryAdpter( getContext(),R.layout.commentrytuple, applications);
commentry.setAdapter(mCommentryAdpter);
databaseReference.addChildEventListener(new ChildEventListener() {
@Override
public void onChildAdded(@NonNull DataSnapshot dataSnapshot, @Nullable String s)
{
mCommentryEntry = dataSnapshot.getValue(CommentryEntry.class);
mCommentryAdpter.add(mCommentryEntry);
ListUtils.setDynamicHeight(commentry);
}
@Override
public void onChildChanged(@NonNull DataSnapshot dataSnapshot, @Nullable String s) {
}
@Override
public void onChildRemoved(@NonNull DataSnapshot dataSnapshot) {
}
@Override
public void onChildMoved(@NonNull DataSnapshot dataSnapshot, @Nullable String s) {
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
推送数据时的条件
mCommentryEntry = new CommentryEntry(va1,val2,val3);
databaseReference.child(ID).setValue(mCommentryEntry);
答案 0 :(得分:0)
如果要生成推送ID,请在致电push()
之前先致电setValue()
:
mCommentryEntry = new CommentryEntry(va1,val2,val3);
databaseReference.child(ID).push().setValue(mCommentryEntry);
请注意,我不确定您的代码段中的ID
是什么,所以我只是将其复制到此处。如果您想按databaseReference
下的按时间顺序排列的唯一子键,只需致电:
databaseReference.push().setValue(mCommentryEntry);