你好我希望只有在你改变评论
时才会出现这条消息 public class activity extends AppCompatActivity implements ChildEventListener {
FirebaseDatabase firebaseDatabase;
DatabaseReference myRef;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_showcomments);
CallFirebase();
}
public void CallFirebase()
{
firebaseDatabase = FirebaseDatabase.getInstance();
myRef = firebaseDatabase.getReference();
myRef = myRef.child(id);
myRef.addChildEventListener(showcomments.this);
}
@Override
public void onChildAdded(DataSnapshot dataSnapshot, String s) {
}
@Override
public void onChildChanged(DataSnapshot dataSnapshot, String s) {
Toast.makeText(this, "done", Toast.LENGTH_SHORT).show();
}
@Override
public void onChildRemoved(DataSnapshot dataSnapshot) {
}
@Override
public void onChildMoved(DataSnapshot dataSnapshot, String s) {
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
当你更改id中的任何变量时,这是有效的,但我只想更改注释
我试图更改此功能但不起作用
public void CallFirebase()
{
firebaseDatabase = FirebaseDatabase.getInstance();
myRef = firebaseDatabase.getReference();
myRef = myRef.child(id).child("comment");
myRef.addChildEventListener(showcomments.this);
}
这里有什么问题我希望得到一个好的答案
答案 0 :(得分:0)
问题在于,一旦初始化myRef
,之后您将为同一myRef
变量分配新引用。要解决此问题,请使用以下代码:
DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference commentRef = rootRef.child(id).child("comment");
commentRef.addChildEventListener(/* ... */)
希望它有所帮助。