Repository: firebase/firebase-ios-sdk (language: cpp)

Issue:
Unnecessary parameters for Functions Callable in async/await
I need to do a bit more investigation into this, but I'm fairly certain this function should be deprecated. It accepts an encoder and decoder as parameters but the `Callable` type itself is initialized with an encoder/decoder so the properties should be used instead. Right now if you use the  There's no equivalent completion based call.

https://github.com/firebase/firebase-ios-sdk/blob/878f8858284db5ea2585404a7153551a1105c199/FirebaseFunctions/Sources/Callable%2BCodable.swift#L131-L139

I'm not sure we can actually deprecate this though as we need to replace it with something like this:
```
public func call(_ data: Request) async throws -> Response { ... }
```

but that would be in conflict with the default arguments.




Discussion / hints:

Fix patch:
diff --git a/FirebaseFunctions/CHANGELOG.md b/FirebaseFunctions/CHANGELOG.md
index 1bf88c6dff5..377c3936ab5 100644
--- a/FirebaseFunctions/CHANGELOG.md
+++ b/FirebaseFunctions/CHANGELOG.md
@@ -1,3 +1,7 @@
+# 10.0.0
+- [fixed] Remove unnecessary and unused `encoder` and `decoder` parameters from
+  `public func call(_ data: Request) async throws -> Response` API. (#9891)
+
 # 9.3.0
 - [fixed] Fixed error code generation for HTTP 409 - "already exists". (#9942)
 
diff --git a/FirebaseFunctions/Sources/Callable+Codable.swift b/FirebaseFunctions/Sources/Callable+Codable.swift
index 0ebd37785f8..5030fb32075 100644
--- a/FirebaseFunctions/Sources/Callable+Codable.swift
+++ b/FirebaseFunctions/Sources/Callable+Codable.swift
@@ -121,18 +121,13 @@ public struct Callable<Request: Encodable, Response: Decodable> {
     /// resumes with a new FCM Token the next time you call this method.
     ///
     /// - Parameter data: The `Request` representing the data to pass to the trigger.
-    /// - Parameter encoder: The encoder instance to use to run the encoding.
-    /// - Parameter decoder: The decoder instance to use to run the decoding.
     ///
     /// - Throws: An error if any value throws an error during encoding or decoding.
     /// - Throws: An error if the callable fails to complete
     ///
     /// - Returns: The decoded `Response` value
     @available(iOS 13, tvOS 13, macOS 10.15, macCatalyst 13, watchOS 7, *)
-    public func call(_ data: Request,
-                     encoder: FirebaseDataEncoder = FirebaseDataEncoder(),
-                     decoder: FirebaseDataDecoder =
-                       FirebaseDataDecoder()) async throws -> Response {
+    public func call(_ data: Request) async throws -> Response {
       let encoded = try encoder.encode(data)
       let result = try await callable.call(encoded)
       return try decoder.decode(Response.self, from: result.data)


Test patch: