当前位置: 首页 > 知识库问答 >
问题:

如何在Swift中将PromiseKit与Firebase一起使用?

慕阳文
2023-03-14

所以我导入PromiseKit,然后尝试

 FIRDatabase.database().reference().child("somechild").removeValue().then  {
///// 
}

显然,这是行不通的,我想知道,如果可能的话,我还缺少什么可以让Firebase的promise发挥作用。我试图实现的是用一个catch方法一次性删除四个Firebase引用。

使用nodeJs,我可以轻松使用:

 Promise.all ([
someRef.remove(),
 someRef.remove(),
someRef.remove(),
someRef.remove()
]).then (function({

}).catch({
//handle error
})

有没有办法在Swift中实现这一点?

共有1个答案

西门振
2023-03-14

您可以将Firebase函数包装为完成和拒绝

/// Get chat IDs of user conversations
///
/// - Returns: array of user chat IDs
private func getUserChatIds() -> Promise<[String]> {

    return Promise { fulfill, reject in
        let userChatIDsRef = Database.database().reference()
            .child(FireDatabasePaths.UserInfoPath.rawValue)
            .child(userID).child("chatIDs")

        userChatIDsRef.observe(.childAdded, with: { snapshot in

            if let chatIDdic = snapshot.value as? [String: AnyObject] {
                let keys = Array(chatIDdic.keys)
                fulfill(keys)
            } else {
                reject(FirebaseError.empty)
            }

        })
    }
}
 类似资料:
  • 问题内容: 我正在尝试在我的watchKit应用中使用firebase数据库。我已经在我的iPhone应用程序上开发了此功能,但是发现在我的Watch应用程序上很难做到这一点。当我尝试将firebase导入watch应用程序的VC类中时,它正在创建error 。 可以在Watch app中使用Firebase吗? 问题答案: 可悲的是,没有支持,并由于这样的事实,有没有支持在这些版本中,并高度依赖

  • Swift PromiseKit 是为 iOS 上实现的一个 Promoises 模式库,使用 Swift 编写。 示例代码: CLLocationManager.promise().catch {    // If location cannot be determined, default to Chicago    return CLLocation(latitude: 41.89, lon

  • 我正在进行一个项目,在该项目中,我使用firebase函数中的express来运行使用手柄的服务器端渲染页面,一切都很正常,但当我使用firestore admin sdk时,我遇到以下错误: 我在函数/index.js文件中使用此代码 函数工作正常,但尝试const db=admin时。firestore()给了我一个错误。我还尝试了函数和firestore的模拟器,但仍然得到了相同的错误 请帮

  • 问题内容: 我正在使用我的应用程序对用户进行身份验证。我已经创建了和表单,并且可以成功创建新用户并使用存储的用户登录。但是,问题出在维护用户之后,保持用户登录状态。 我在教程中看到的方式是使用类似以下内容的命令检查当前用户是否已登录。 但是,我希望使用新版 本来消除对的需要。我已经 通过使用和访问的单个实例删除了。有没有使用新的方式来模拟这个 范围内,我创造? 我正在使用本教程 https://w

  • 有没有办法在Firebase主机上使用Brotli压缩而不是gzip?我知道Firebase会自动压缩它,但到目前为止,它只使用gzip。

  • 问题内容: 我想将组件与Android的新实现一起使用。但是,提供的方法仅支持旧的实现。有没有一种方法可以轻松地将a绑定到组件? 问题答案: 您必须使用它 来模拟和设置with 。否则,您将必须编写自己的适配器,以结合双方。 它的代码在Kotlin中看起来像这样