#エラーが起きる時
###functions側(Typescript)
import * as functions from 'firebase-functions'
export const callTest = functions.region('asia-northeast1').https.onCall(data => {
console.log('callTest called!')
return {
A: 'Hello World',
B: 42
}
})
###クライアント側
import Firebase
// ~省略~
func call() {
Functions.functions().httpsCallable("callTest").call { (result, error) in
if let result = result,
let resData = result.data as? [String : Any] {
print(resData)
print("***成功だよ")
}
if let error = error {
print(error)
print("***エラーだよ")
} else {
print("***エラーはないよ")
}
}
}
###エラー
Error Domain = NSCocoaErrorDomain
Code = 3840
"JSON text did not start with array or object and option to allow fragments not set."
#解決法
クライアント側でFunctions.functions()
をするとき、呼び出したいfunctionがデプロイされているregionを指定する。
func call() {
Functions.functions(region: "asia-northeast1").httpsCallable("callTest").call { (result, error) in
// ~省略~
}
}
原因はよくわからなかったので知っている方がいれば是非教えてください。