【问题标题】:How to use push() with onDisconnect when user crashes用户崩溃时如何将 push() 与 onDisconnect 一起使用
【发布时间】:2021-08-02 13:05:14
【问题描述】:

假设我的数据库中存储了文本消息,并且由 childByAutoId() 使用时间戳排序。像这样的:

-messages
    - dh28hd82jss
            ...
    - nds28h82h1a
            ...
    - di2jd92dhtd
            ...

我要做的是在用户崩溃时 push() 一条新消息。

这就是我通常使用 onDisconnect 操作的方式:

database.child("messages").onDisconnectUpdateChildValues( *update* ){ (error, ref) in
            if let error = error {
                print("\(error)")
            }
            completion(true)
        }

当用户崩溃时,如何使用 push() 附加一条新的文本消息,使用 onDisconnect? (短信:“John Disconnected”)

【问题讨论】:

    标签: swift firebase firebase-realtime-database


    【解决方案1】:

    在调用onDisconnectUpdateChildValues 时,您需要知道要写入的确切值。所以你可以做的是确定一个按键now,然后在断开连接时注册写入:

    let key = database.childByAutoId().key
    database.child("messages").child(key).onDisconnectUpdateChildValues([
      "text": "Hello world"
    ])
    

    【讨论】:

    • 知道为什么数据“Database.database().reference().push()”不退出吗?我认为 swift 没有 push() 并且我必须直接使用 childByAutoId() 吗?谢谢粉扑
    • 哎呀,好点子。在 iOS 上,它确实是 childByAutoId。我更新了我的答案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-06
    • 1970-01-01
    • 2021-12-30
    相关资源
    最近更新 更多