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

标签 swift database firebase

我有以下代码;

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)
        })
    })

我的数据库如下所示;

AllJobs
    JobID
        Name
        Description

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

最佳答案

您可以附加两个监听器以获取名称和描述

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)
    });

});

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


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

关于swift - 如何在 firebase 中监听嵌套的 childChanged 事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48478053/

相关文章:

swift - SpriteKit - 暂停输入

ios - 数据下载完成后如何重新加载 uipageviewcontroller 以考虑新数据。 swift 3

database - 在 ravendb 运行托管其他数据库时删除单个 ravendb 数据库

firebase - 类型错误 : Cannot read property 'uid' of null

firebase - 为什么在 Firebase 中使用 UID?我应该使用它吗

ios - 过渡期间导航栏右侧的 UI 故障(黑色闪烁)

ios - 是否可以通过 iDevice 闪电端口访问数据?

java.sql.SQLSyntaxErrorException : ORA-00947: not enough values

database - Drupal 网站因许多连接错误而被阻止 - 网站离线

javascript - 列出 Firebase 数据库中的节点