Vin*_*ins 2 json ios firebase swift google-cloud-functions
我有这个简单的云功能:
export const getTasks = functions.https.onRequest((request, response) => {
admin.firestore().collection('tasks').get()
.then(snapshot => {
const results = []
snapshot.forEach(task => {
const data = task.data()
results.push(data)
})
response.send(results)
})
.catch(error => {
console.log(error)
response.status(500).send(error)
})
});
Run Code Online (Sandbox Code Playgroud)
来自浏览器的 https 调用给了我一个正确的 json:
[
{
title: "A title",
dueDate: "2018-07-03T18:33:27.537Z",
isComplete: true,
type: "task",
date: "2018-07-02T18:33:27.537Z"
},
{
type: "task",
date: "2018-07-02T18:36:25.506Z",
title: "Wowo",
dueDate: "2018-07-02T21:59:59.000Z",
isComplete: true
},
{
title: "Abc",
dueDate: "2018-07-04T18:31:58.050Z",
isComplete: false,
type: "task",
date: "2018-07-02T18:31:58.050Z"
}
]
Run Code Online (Sandbox Code Playgroud)
但是当我尝试通过该函数从 iOS 客户端接收数据时,我得到了一个FIRHTTPSCallableResult对象和一个 nil 对象:
functions.httpsCallable("getTasks").call() { (result, error) in
if let error = error as NSError? {
if error.domain == FunctionsErrorDomain {
//...
}
// ...
}
print( "result -> \(type(of: result))")
print( "result?.data -> \(type(of: result?.data))")
Run Code Online (Sandbox Code Playgroud)
日志:
result -> Optional<FIRHTTPSCallableResult>
result?.data -> Optional<Any>
Run Code Online (Sandbox Code Playgroud)
我尝试使用 JSON 解析但它不起作用。我怎样才能得到json?
谢谢
该字段的API 文档data指出:
数据采用本机对象的形式。例如,如果您的触发器返回一个数组,则该对象将是一个 NSArray。如果您的触发器返回一个带有键和值的 JavaScript 对象,则该对象将是一个 NSDictionary。
既然你从你的函数发送对象的数组,你把内容data作为NSArray的NSDictionary对象。
| 归档时间: |
|
| 查看次数: |
971 次 |
| 最近记录: |