Avatar
↓は Firebase iOS SDK の Combine 対応 API (多分 combine-master というブランチなので開発中)ですが、 Future じゃなくて AnyPublisher 返すようになってるの微妙じゃないですか? public func getDocuments() -> AnyPublisher<QuerySnapshot, Error> { Future<QuerySnapshot, Error> { [weak self] promise in self?.getDocuments { querySnapshot, error in if let error = error { promise(.failure(error)) } else if let querySnapshot = querySnapshot { promise(.success(querySnapshot)) } else { promise(.failure(NSError(domain: "FirebaseFirestoreSwift", code: -1, userInfo: [NSLocalizedDescriptionKey: "InternalError - Return type and Error code both nil in " + "getDocuments publisher"]))) } } } .eraseToAnyPublisher() } https://github.com/firebase/firebase-ios-sdk/blob/combine-master/Firestore/Swift/Source/Combine/Query+Combine.swift#L45-L62
Firebase iOS SDK. Contribute to firebase/firebase-ios-sdk development by creating an account on GitHub.
10:11 AM
非同期単発は FutureaddSnapshotListener とかは AnyPublisher と分けてほしい気が。
10:12 AM
将来( Swift 6 で?) Futurefunc get() async throws -> Output が生えるだろうし。 (edited)