Я пытаюсь интегрировать приложение iOS Swift с облачными функциями с помощью onCall.Однако мой простой сервис отказывается отправлять данные обратно.
Вот моя функция:
exports.getText = functions.https.onCall((data, context) => {
var public_token = data.public_token;
if (!(typeof public_token === 'string') || public_token.length === 0) {
// Throwing an HttpsError so that the client gets the error details.
throw new functions.https.HttpsError('invalid-argument', 'The function must be called with ' +
'one arguments "text" containing the message text to add.');
}
const docRef = admin.firestore().doc(`/PlaidUsers/` + public_token);
docRef.get().then(function(doc) {
if (doc.exists) {
return {"text" : "test"};
} else {
return {"text" : "Document doesn't exist"};
}
}).catch(error => {
return {"text" : "Error getting document"};
});
});
Он успешно развертывается в облачных функциях
Вот мой простой Swiftкод:
self.functions.httpsCallable("getText").call(["public_token" : self.userMap["plaidPublicToken"]]) { (result, error) in
if let error = error as NSError? {
if error.domain == FunctionsErrorDomain {
let code = FunctionsErrorCode(rawValue: error.code)
let message = error.localizedDescription
let details = error.userInfo[FunctionsErrorDetailsKey]
print(message)
}
// ...
}
if let text = (result?.data as? [String: Any])?["text"] as? String {
print (text)
}
}
Я не получаю ошибки, только нулевой результат.