#android #firebase #react-native #google-cloud-functions #firebase-tools
# #Android #firebase #react-native #google-cloud-функции #firebase-инструменты
Вопрос:
Я создаю приложение и использую firebase для серверной части. Я использовал react-native-firebase для использования firebase в моем приложении. Я разработал облачную функцию входа в систему
exports.login = functions.https.onCall((data, context) => {
console.log("data", data);
console.log("context", context);
return "Login successful";
});
При запуске npm run serve в папке functions я получаю эти конфигурации в своей консоли.
Вывод на консоль после запуска npm run serve внутри папки функций для firebase
Также я добавил следующий код для подключения к облачной функции из моего Android-эмулятора, на котором запущено приложение.
import functions from "@react-native-firebase/functions"
const [email, setEmail] = useState("");
const [password, setPassword] = useState("");
const handleLogin = () => {
// console.log(email, password);
functions()
.useFunctionsEmulator("URL")
.httpsCallable("login")({ email, password })
.then((response) => {
alert(response);
});
}
для URL-адреса, который я пробовал «http://localhost:5001 /» поскольку это порт, на котором прослушивается эмулятор функций
, порт, на котором прослушиваются облачные функции. Но при запуске приложения я получаю эту
ошибку при нажатии кнопки входа в консоль приложения. Я попытался найти ошибку, но ничего подходящего не появилось. Любая помощь будет оценена.
Это мои облачные функции, которые я определил
exports.helloWorld = functions.https.onRequest((request, response) => {
functions.logger.info("Hello logs!", { structuredData: true });
response.send("Hello from Firebase!");
});
exports.signup = functions.https.onRequest((request, response) => {
console.log("request", request);
response.send("SignUp successfull");
});
exports.login = functions.https.onCall((data, context) => {
console.log("data", data);
console.log("context", context);
return "SignIn successfull";
});
Ответ №1:
Наконец-то я смог с этим разобраться
const handleLogin = async () => {
functions().useFunctionsEmulator("http://localhost:5001")
const response = await functions().httpsCallable("login")({ email, password });
console.log("response", response);
}
Это весь код, необходимый для успешного локального вызова облачной функции внутри эмулятора из вашего запущенного эмулятора Android.