swift - 如何将自定义 Codable 模型传递给 Firebase 函数?
问题描述
将自定义 Codable 模型传递给 firebase 函数的最佳方法是什么?这是我现在所拥有的,但我得到了错误:Unsupported type: __SwiftValue for value
struct ExampleStruct: Codable {
var hi: String
var world: Int
var last: [String]
}
let myModel = ExampleStruct(hi: "World", world: 1, last: ["hi world"])
functions.httpsCallable(FirebaseFunctionsNames.exampleName).call(["data":myModel]) { [weak self] (result, error) in
print(result)
print(error)
}
解决方案
以下内容最终解决了我的问题(注意:我不建议强制展开和强制转换,但以这种方式在 StackOverflow 中更容易使用 :)
struct ExampleStruct: Codable {
var hi: String
var world: Int
var last: [String]
}
let myModel = ExampleStruct(hi: "World", world: 1, last: ["hi world"])
func hiWorld(input: myModel) {
let jsonEncoder = JSONEncoder()
let jsonData = try! jsonEncoder.encode(input)
let json = String(data: jsonData, encoding: .utf8)!
functions.httpsCallable(FirebaseFunctionsNames.exampleName).call(["data":json]) { [weak self] (result, error) in
print(result)
print(error)
}
}
然后在后端(打字稿):
const myModel = JSON.parse(data.data) as ExampleStruct;
推荐阅读
- javascript - React:如何使用 innerHTML 卸载子节点?
- javascript - 如何防止参数篡改从 React JS 传递到 Express Server 的数据?
- powershell - 如何在提供 CertificateTemplate 和 SAN 属性的同时使用 certreq.exe 签署 CSR?
- reactjs - React JS,调用函数并在点击时关闭对话框
- typescript - 如何在Typescript中将接口的属性名称/键名称作为字符串获取
- java - 使用 Jsoup 获取所有 img src
- c++ - 我可以制作两个 std::ostream-s 的 std::pair 吗?
- excel - Excel - 使用 Dateif 函数生成天数
- javascript - 如何在 Web 浏览器中本地运行 three.js 示例?
- c - 从源代码构建 pywinhook 的问题