Я создаю приложение для iOS, использующее Firebase для бэкэнда, и мне нужно использовать Firebase Callable Cloud Functions.У меня все настроено в соответствии с тем, что документы и функции запускаются и ведут себя должным образом при запуске из браузера или curl, но я не могу заставить их запускаться из моего приложения.
Я настроил тестовое приложение, просто используя функциии я не могу заставить это стрелять из приложения iOS также.Даже не простой привет мир.Ничего не проходит.
Все, что было сделано:
Сторона Firebase:
- Firebase успешно подключено к приложению
- Установлено/ Локальная инициализация функций Firebase.
- Записанный код функции в VSCode, пытающийся использовать и Javascript, и TypeScript
- Успешно развернут в Firebase и может видеть функцию в консоли
- Протестированная функция через командную строкуи браузер на локальном сервере все работает как положено
Сторона iOS:
- Модуль с установленными функциями Firebase
- импортированные функции Firebase в ViewController
- Использовал Firebase SDK для вызова функции, совпадающей с именем функции в Firebase - привязан к триггеру кнопки
И я ничего не получаю ... оператор печати на кнопке работает, но функция не срабатывает и ничегорегистрируется в журналах Firebase.
Что я здесь упускаю или делаю неправильно?
Пробовал новый проект с новым экземпляром Fireбаза.Скопировал код прямо из примеров в документации Firebase и пошагово следовал за всем
FIREBASE CODE
const functions = require('firebase-functions');
const admin = require('firebase-admin')
exports.helloWorld = functions.https.onCall((data, context) => {
const text = data.text;
console.log("Text: " + text);
const uid = context.uid;
console.log("UID: " + uid);
const name = context.name;
console.log("Name: " + name);
console.log('Hello world fucking worked baby!');
return {
message: text
}
});
SWIFT CODE
import UIKit
import FirebaseFunctions
class ViewController: UIViewController {
lazy var functions = Functions.functions()
override func viewDidLoad() {
super.viewDidLoad()
}
@IBAction func fireFunction(_ sender: Any) {
print("Button Fire")
let data = ["text": "hello!"]
functions.httpsCallable("helloWorld").call(data) { (result, error) in
print("Function returned")
if let err = error {
print(err)
}
if let res = result {
print(res)
}
}
}
}