如何在firebase中监听嵌套的childChanged事件?

时间:2018-01-27 16:47:18

标签: swift database firebase

我有以下代码;

plt.imsave('file.png', X, cmap=cm.gray)

My Databse如下所示;

newHandle = jobsRef.observe(.childChanged, with: { (jobSnapshot) in
        print(jobSnapshot)
        print(jobSnapshot.ref)
        print("end")
        self.childHandle = jobSnapshot.ref.observe(.childChanged, with: { (childSnapshot) in
            print("hello")
            print(childSnapshot)
        })
    })

JobsRef指向AllJobs,当我更改Name时,前三个print语句被调用。但我希望第二个被调用当我更改名称时,因为我想知道名称是否已更改或描述。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

你可以为名字和描述添加两个听众

jobsRef.observe(.childChanged, with: 
{ 
    (jobSnapshot) in
    // print(jobSnapshot)
    // print(jobSnapshot.ref)
    // print("end")
    jobSnapshot.ref..child("name").observe(.childChanged, with: { (childSnapshot) in
        print("name changed")
        print(childSnapshot)
    });

    jobSnapshot.ref.child("description").observe(.childChanged, with: { (childSnapshot) in
        print("description changed")
        print(childSnapshot)
    });

});

但请记住,这将为您观察到的每项工作生成听众,我认为这是个坏主意

注意:我为子名称(名称,描述)使用了小写名称,如果它们不同则需要更改这些名称