变量更改时出现消息

时间:2017-09-15 15:27:23

标签: android firebase

你好我希望只有在你改变评论

时才会出现这条消息
    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);
    }

这里有什么问题我希望得到一个好的答案

1 个答案:

答案 0 :(得分:0)

问题在于,一旦初始化myRef,之后您将为同一myRef变量分配新引用。要解决此问题,请使用以下代码:

DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference commentRef = rootRef.child(id).child("comment");
commentRef.addChildEventListener(/* ... */)

希望它有所帮助。