Swift AwaitKit с базой данных Firebase

Я пытаюсь реализовать базу данных Firebase с Swifts AwaitKit, который доставляет await/async и использует swifts PromiseKit под капотом. Проблема в том, что когда я помещаю код firebase в обещание, он всегда не работает NSURLSession с этой ошибкой

"Сбой загрузки NSURLSession/NSURLConnection HTTP (kCFStreamErrorDomainSSL, -9802)"

Однако http сам по себе использует https, а не http. Я пытался разрешить NSAllowsArbitraryLoads, NSExceptionDomains ничто не помогает мне. Вот код.

let data: [String: Any] = [
        "test": 1,
        "test2": "user"
    ]

    let promise: Promise<Bool> = Promise { resolve, reject in
        ref.child("test/picks").setValue(data) { err, _ in
            if err == nil {
                resolve(true)
            } else {
                reject(err!)
            }
        }
    }

    let isStored = try! await(promise)

0 ответов

У меня такая же проблема, вот рабочий фрагмент с Xcode 11 Beta 5, SwiftUI, AwaitKit, PromiseKit и Firestore.

import Foundation
import Firebase
import PromiseKit
import AwaitKit


final class UserStore: ObservableObject {
    let collection: CollectionReference

    init() {
        collection = Firestore.firestore().collection("users")
    }


    func create(userId: String, familyName: String, givenName: String, email: String) {
         async {
            let fetchUser : Promise<String> = Promise { seal in
                self.collection.document("HFlTjPHgbXH96q6LQ93N").getDocument { (document, error) in
                    if let document = document, document.exists {
                        let dataDescription = document.data().map(String.init(describing:)) ?? "nil"
                        seal.fulfill(dataDescription)
                    } else {
                        seal.reject(NSError())
                    }
                }
            }
            let user = try! await(fetchUser)
            print("My user:", user)
        }
    }
}


Другие вопросы по тегам