У меня есть приложение Flutter, и теперь мне нужно принимать платежи в моем приложении, и я хочу проверить, производится ли платеж с помощью функций Firebase, но я постоянно получаю сообщение об ошибке без аутентификации.
Я добавил проверку приложения, потому что это было необходимо для реализации нужной мне функции оплаты. Я получаю в приложении проверку, что мой запрос проверен, поэтому я не думаю, что это проблема. Но если я вызову функцию, я получу ошибку [firebase_functions/unauthenticated} UNAUTHENTICATED. Я изменил всю функцию только для проверки, но все равно получаю ту же ошибку:
Index.js
const admin = require("firebase-admin");
admin.initializeApp();
exports.testFunction = functions.https.onCall((data, context) => {
console.log("Auth context:", context.auth);
console.log("App Check token:", context.app);
// Check if the user is authenticated
if (!context.auth) {
console.error("User is not authenticated.");
throw new functions.https.HttpsError(
"failed-precondition",
"The function must be called while authenticated.",
);
}
// Check if App Check is enabled and working
if (!context.app) {
console.error("App Check token is missing or invalid.");
throw new functions.https.HttpsError(
"failed-precondition",
"App Check is not verified or missing.",
);
}
// Return a simple success message
return {message: "Authentication and App Check are working!"};
});
А это мой флаттер-экран, на котором я тестирую функцию Firebase:
import 'package:flutter/material.dart';
import 'package:cloud_functions/cloud_functions.dart';
import 'package:firebase_auth/firebase_auth.dart';
class TestFunctionScreen extends StatefulWidget {
@override
_TestFunctionScreenState createState() => _TestFunctionScreenState();
}
class _TestFunctionScreenState extends State {
String _result = "Press the button to test Firebase Function";
Future testFunction() async {
try {
// Ensure the user is logged in
User? user = FirebaseAuth.instance.currentUser;
if (user == null) {
setState(() {
_result = "User not logged in. Please log in and try again.";
});
return;
}
print("Authenticated user: ${user.uid}");
// Call Firebase Function
final HttpsCallable callable = FirebaseFunctions.instance.httpsCallable('testFunction');
final response = await callable.call();
setState(() {
_result = "Function Response: ${response.data}";
});
} catch (e, stackTrace) {
print("Error calling function: $e");
print(stackTrace);
setState(() {
_result = "Error: $e";
});
}
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text("Test Firebase Function"),
),
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Text(
_result,
textAlign: TextAlign.center,
),
SizedBox(height: 20),
ElevatedButton(
onPressed: testFunction,
child: Text("Test Firebase Function"),
),
],
),
),
);
}
}
Это журнал запуска приложения до тех пор, пока я не нажму кнопку проверки функций Firebase.
I/flutter (12954): App Check Token: eyJraWQiOiJRNmZ5eEEiLCJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJzdWIiOiIxOjQyMDMzMzQ2Mzk0MDphbmRyb2lkOmJlZDJmYjBiODkjE3MzE5NDQ4NDcsImp0aSI6InlwR0o5Q2g2YndpRDllbnNNN3VhYzVZQ0JtWDFXVWVuR1dQUkVIQW5YZzgifQ.VVQkV5d8GzU0KMMXe-JLE0Zkrg3809HCIbBOEf0oqJE7JFRyN6xJYMuOzez9Y1YR-aVbUtVUO7qcMg122znB9LFyd1kYZD-nx1N4umICG83DL12SUI9NWVYYv64L5qtbOZsP3eYW9ytqH8stHKka0bfe1y_eB2v7RzgNeSSpBuylRQHDJHkI2FEWr69PnE8WP6nD7K4cEZaQBR5VZPHH51aWkoj-VlODEdJBqMQXM6CdbQ1ZHDEjZvOucLUQlcbq11dsr4wvnO68SaILiq_rapIzvZCo7FltLhYJzGzjl4BBz6wM6YSQzbhA198_L0PS46tWFJ8MIPCedqWe434EAh_mX8FJcGlA5PdrdHJkxCcFB6oPbjViBldbsrSlEjNbQX1OFeBShv5PAumbj2EYbPt_1ensR0hvkaNw2oNwPS_4TyavizRhN_Vcg
I/flutter (12954): Authenticated user: 6hxNET0B1cbZ9hLMVk6p13
W/s.homes_captain(12954): Accessing hidden method Ldalvik/system/CloseGuard;->get()Ldalvik/system/CloseGuard; (unsupported,core-platform-api, reflection, allowed)
W/stain(12954): Accessing hidden method Ldalvik/system/CloseGuard;->open(Ljava/lang/String;)V (unsupported,core-platform-api, reflection, allowed)
W/s.tain(12954): Accessing hidden method Ldalvik/system/CloseGuard;->warnIfOpen()V (unsupported,core-platform-api, reflection, allowed)
I/flutter (12954): Error calling function: [firebase_functions/unauthenticated] UNAUTHENTICATED
I/flutter (12954):
I/flutter (12954): #0 StandardMethodCodec.decodeEnvelope (package:flutter/src/services/message_codecs.dart:648:7)
I/flutter (12954): #1 MethodChannel._invokeMethod (package:flutter/src/services/platform_channel.dart:334:18)
I/flutter (12954):
I/flutter (12954): #2 MethodChannelHttpsCallable.call (package:cloud_functions_platform_interface/src/method_channel/method_channel_https_callable.dart:22:24)
I/flutter (12954):
I/flutter (12954): #3 HttpsCallable.call (package:cloud_functions/src/https_callable.dart:49:37)
I/flutter (12954):
I/flutter (12954): #4 _TestFunctionScreenState.testFunction (package:homes_captain/paymentscreen.dart:27:24)
I/flutter (12954):
I/flutter (12954): #0 StandardMethodCodec.decodeEnvelope (package:flutter/src/services/message_codecs.dart:648:7)
I/flutter (12954): #1 MethodChannel._invokeMethod (package:flutter/src/services/platform_channel.dart:334:18)
I/flutter (12954):
I/flutter (12954): #2 MethodChannelHttpsCallable.call (package:cloud_functions_platform_interface/src/method_channel/method_channel_https_callable.dart:22:24)
I/flutter (12954):
I/flutter (12954): #3 HttpsCallable.call (package:cloud_functions/src/https_callable.dart:49:37)
I/flutter (12954):
I/flutter (12954): #4 _TestFunctionScreenState.testFunction (package:homes_captain/paymentscreen.dart:27:24)
I/flutter (12954):
Подробнее здесь: https://stackoverflow.com/questions/792 ... henticated
Я получаю сообщение об ошибке в функциях Firebase: Неаутентифицировано ⇐ Android
Форум для тех, кто программирует под Android
1731945885
Anonymous
У меня есть приложение Flutter, и теперь мне нужно принимать платежи в моем приложении, и я хочу проверить, производится ли платеж с помощью функций Firebase, но я постоянно получаю сообщение об ошибке без аутентификации.
Я добавил проверку приложения, потому что это было необходимо для реализации нужной мне функции оплаты. Я получаю в приложении проверку, что мой запрос проверен, поэтому я не думаю, что это проблема. Но если я вызову функцию, я получу ошибку [firebase_functions/unauthenticated} UNAUTHENTICATED. Я изменил всю функцию только для проверки, но все равно получаю ту же ошибку:
Index.js
const admin = require("firebase-admin");
admin.initializeApp();
exports.testFunction = functions.https.onCall((data, context) => {
console.log("Auth context:", context.auth);
console.log("App Check token:", context.app);
// Check if the user is authenticated
if (!context.auth) {
console.error("User is not authenticated.");
throw new functions.https.HttpsError(
"failed-precondition",
"The function must be called while authenticated.",
);
}
// Check if App Check is enabled and working
if (!context.app) {
console.error("App Check token is missing or invalid.");
throw new functions.https.HttpsError(
"failed-precondition",
"App Check is not verified or missing.",
);
}
// Return a simple success message
return {message: "Authentication and App Check are working!"};
});
А это мой флаттер-экран, на котором я тестирую функцию Firebase:
import 'package:flutter/material.dart';
import 'package:cloud_functions/cloud_functions.dart';
import 'package:firebase_auth/firebase_auth.dart';
class TestFunctionScreen extends StatefulWidget {
@override
_TestFunctionScreenState createState() => _TestFunctionScreenState();
}
class _TestFunctionScreenState extends State {
String _result = "Press the button to test Firebase Function";
Future testFunction() async {
try {
// Ensure the user is logged in
User? user = FirebaseAuth.instance.currentUser;
if (user == null) {
setState(() {
_result = "User not logged in. Please log in and try again.";
});
return;
}
print("Authenticated user: ${user.uid}");
// Call Firebase Function
final HttpsCallable callable = FirebaseFunctions.instance.httpsCallable('testFunction');
final response = await callable.call();
setState(() {
_result = "Function Response: ${response.data}";
});
} catch (e, stackTrace) {
print("Error calling function: $e");
print(stackTrace);
setState(() {
_result = "Error: $e";
});
}
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text("Test Firebase Function"),
),
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Text(
_result,
textAlign: TextAlign.center,
),
SizedBox(height: 20),
ElevatedButton(
onPressed: testFunction,
child: Text("Test Firebase Function"),
),
],
),
),
);
}
}
Это журнал запуска приложения до тех пор, пока я не нажму кнопку проверки функций Firebase.
I/flutter (12954): App Check Token: eyJraWQiOiJRNmZ5eEEiLCJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJzdWIiOiIxOjQyMDMzMzQ2Mzk0MDphbmRyb2lkOmJlZDJmYjBiODkjE3MzE5NDQ4NDcsImp0aSI6InlwR0o5Q2g2YndpRDllbnNNN3VhYzVZQ0JtWDFXVWVuR1dQUkVIQW5YZzgifQ.VVQkV5d8GzU0KMMXe-JLE0Zkrg3809HCIbBOEf0oqJE7JFRyN6xJYMuOzez9Y1YR-aVbUtVUO7qcMg122znB9LFyd1kYZD-nx1N4umICG83DL12SUI9NWVYYv64L5qtbOZsP3eYW9ytqH8stHKka0bfe1y_eB2v7RzgNeSSpBuylRQHDJHkI2FEWr69PnE8WP6nD7K4cEZaQBR5VZPHH51aWkoj-VlODEdJBqMQXM6CdbQ1ZHDEjZvOucLUQlcbq11dsr4wvnO68SaILiq_rapIzvZCo7FltLhYJzGzjl4BBz6wM6YSQzbhA198_L0PS46tWFJ8MIPCedqWe434EAh_mX8FJcGlA5PdrdHJkxCcFB6oPbjViBldbsrSlEjNbQX1OFeBShv5PAumbj2EYbPt_1ensR0hvkaNw2oNwPS_4TyavizRhN_Vcg
I/flutter (12954): Authenticated user: 6hxNET0B1cbZ9hLMVk6p13
W/s.homes_captain(12954): Accessing hidden method Ldalvik/system/CloseGuard;->get()Ldalvik/system/CloseGuard; (unsupported,core-platform-api, reflection, allowed)
W/stain(12954): Accessing hidden method Ldalvik/system/CloseGuard;->open(Ljava/lang/String;)V (unsupported,core-platform-api, reflection, allowed)
W/s.tain(12954): Accessing hidden method Ldalvik/system/CloseGuard;->warnIfOpen()V (unsupported,core-platform-api, reflection, allowed)
I/flutter (12954): Error calling function: [firebase_functions/unauthenticated] UNAUTHENTICATED
I/flutter (12954):
I/flutter (12954): #0 StandardMethodCodec.decodeEnvelope (package:flutter/src/services/message_codecs.dart:648:7)
I/flutter (12954): #1 MethodChannel._invokeMethod (package:flutter/src/services/platform_channel.dart:334:18)
I/flutter (12954):
I/flutter (12954): #2 MethodChannelHttpsCallable.call (package:cloud_functions_platform_interface/src/method_channel/method_channel_https_callable.dart:22:24)
I/flutter (12954):
I/flutter (12954): #3 HttpsCallable.call (package:cloud_functions/src/https_callable.dart:49:37)
I/flutter (12954):
I/flutter (12954): #4 _TestFunctionScreenState.testFunction (package:homes_captain/paymentscreen.dart:27:24)
I/flutter (12954):
I/flutter (12954): #0 StandardMethodCodec.decodeEnvelope (package:flutter/src/services/message_codecs.dart:648:7)
I/flutter (12954): #1 MethodChannel._invokeMethod (package:flutter/src/services/platform_channel.dart:334:18)
I/flutter (12954):
I/flutter (12954): #2 MethodChannelHttpsCallable.call (package:cloud_functions_platform_interface/src/method_channel/method_channel_https_callable.dart:22:24)
I/flutter (12954):
I/flutter (12954): #3 HttpsCallable.call (package:cloud_functions/src/https_callable.dart:49:37)
I/flutter (12954):
I/flutter (12954): #4 _TestFunctionScreenState.testFunction (package:homes_captain/paymentscreen.dart:27:24)
I/flutter (12954):
Подробнее здесь: [url]https://stackoverflow.com/questions/79200582/i-get-a-error-in-firebase-functions-unauthenticated[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия