Я получаю сообщение об ошибке в функциях Firebase: НеаутентифицированоAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Я получаю сообщение об ошибке в функциях Firebase: Неаутентифицировано

Сообщение 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):


Подробнее здесь: https://stackoverflow.com/questions/792 ... henticated
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»