iOS内部的Firebase是否只知道对IDENTICAL REQUESTS的观察?

时间:2017-12-14 16:43:47

标签: ios firebase firebase-realtime-database

这个问题是关于制作多个

相同

对Firebase的观察请求。我在标题中澄清了这一点。

请注意,链接的问题是关于提出许多相似但不同的观察请求。

(非常具体地说,在另一个问题上,FBase工程师解释说>嵌套<请求是巧妙处理的,这很好。我问的是2个或更多相同的。)

我刚刚对Firebase设备内开发有了一个了不起的认识,

enter image description here

所以,虚线箭头实际上是:

    let path = "blah/\(user)/price/123123123"
    addRef = Database.database().reference(withPath: path)
    addRef!.observe(.childAdded) { snapshot in
        ....
        ....
    }

无处不在,您需要在应用的多个屏幕或过程中使用值"price/123123123"

在示例中:

AB都需要知道"price/123123123"

在我的示例中, AB执行此操作:

    let path = "blah/\(user)/price/123123123"
    addRef = Database.database().reference(withPath: path)
    addRef!.observe(.childAdded) { snapshot in
        ....
        ....
    }

这两个请求完全相同。

关键问题:

  

在该示例中,Firebase知道 实际上只知道一个实际连接,或者它是否更愿意建立两个连接?

所以:标记为黑魔法的部分实际上只有关于price/123123123 一个 连接,它会知道服务这两个回调

相反,Firebase采用让我们说KISS的方法,在标记为黑魔法的部分的例子中,关于price/123123123两个连接,每个都会服务一个A和B。

这两种方法都很棒,但是,取决于FBase的功能,它会彻底改变应用程序级别的修补体系结构。

这是什么?

1 个答案:

答案 0 :(得分:2)

从客户端应用程序与Firebase实时数据库的所有通信都通过单个websocket进行维护。您可以根据需要设置尽可能多的侦听器/观察器,并通过该单个套接字传输所有数据。如果同一位置有两个侦听器,则不会重复数据 - 数据只会被传输一次并分发给所有侦听器。