在FirebaseDatabase.getInstance()。getReference()。child(userID)中查找子项后,它仍然在侦听前一个孩子

时间:2016-08-05 16:52:43

标签: android firebase firebase-realtime-database

如果我在FirebaseDatabase.getInstance()。getReference()。child(“userID”)中更改子项,为什么它仍然继续监听以前的孩子。假设我有user1,user2和user3。如果我使用user1登录,则只监听user1值,在用user2登录后,它正在侦听user1和user2值,如果我使用user3登录,则它正在侦听user1,user2和user3值。为什么firebase会继续监听以前的孩子。如果我第一次使用user1登录,则它会监听user2和user3值。

var redis = require("redis");
var sub = redis.createClient(), pub = redis.createClient();
var msg_count = 0;

sub.on("subscribe", function (channel, count) {
    pub.publish("a nice channel", "I am sending a message.");
    pub.publish("a nice channel", "I am sending a second message.");
    pub.publish("a nice channel", "I am sending my last message.");
});

sub.on("message", function (channel, message) {
    console.log("sub channel " + channel + ": " + message);
    msg_count += 1;
    if (msg_count === 3) {
        sub.unsubscribe();
        sub.quit();
        pub.quit();
    }
});

sub.subscribe("a nice channel");

1 个答案:

答案 0 :(得分:2)

您需要保留对您添加到数据库参考的ChildEventListener的引用,然后调用 if (childEventListener != null) databaseReference.removeEventListener(childEventListener); 在您的活动的onStop()方法上。