by Anonymous » 06 Apr 2025, 00:02
Ich versuche, eine Gen 2 -Cloud -Lauffunktion aus meiner Flutter -App aufzurufen. Ich habe allen Benutzern bereits die Rolle des "Cloud Run Invoker" gewährt (effektiv zulässt, dass nicht authentifizierte Aufrufe in Xcode in Xcode testen. Hier ist das relevante Ausschnitt aus meiner AuthService -Klasse, in dem ich das Token erwerbe und den Endpunkt der Cloud -Funktionen aufrufen soll: < /p>
Hier wird es bei Anmeldung < /p>
zugewiesen
Code: Select all
Future signInWithEmail(String email, String password) async {
final user = userCredential.user;
if (user == null) {
throw Exception('Sign-in failed, no user returned');
}
// Force refresh of the ID token after login:
final idToken = await user.getIdToken(true);
debugPrint('Successfully got fresh ID token: ${idToken.substring(0, 20)}...');
return user;
< /code>
Und dies ist ein Beispiel für Funktionsaufruf < /p>
final user = FirebaseAuth.instance.currentUser;
// If the user isn't signed in, handle it or show an error:
if (user == null) {
debugPrint('No user found; cannot verify subscription');
return;
}
// Optionally refresh the token again, if needed:
final refreshedToken = await user.getIdToken(true);
debugPrint('Refreshed token before calling function: ${refreshedToken.substring(0, 20)}...');
try {
// Call your secure Firebase Function / Cloud Run endpoint here
// (This is just an example – your actual call may differ)
final result = await _firebaseService.callFunction('validateIosPurchase', {
'receipt': /* iOS receipt data */,
'subscriptionId': purchase.productID,
'debug': false,
});
debugPrint('Purchase verified: $result');
// …perform additional logic, e.g. updating premium status…
} catch (e) {
debugPrint('Purchase verification error: $e');
rethrow; // or handle the error
}
}
Ich versuche, eine Gen 2 -Cloud -Lauffunktion aus meiner Flutter -App aufzurufen. Ich habe allen Benutzern bereits die Rolle des "Cloud Run Invoker" gewährt (effektiv zulässt, dass nicht authentifizierte Aufrufe in Xcode in Xcode testen. Hier ist das relevante Ausschnitt aus meiner AuthService -Klasse, in dem ich das Token erwerbe und den Endpunkt der Cloud -Funktionen aufrufen soll: < /p>
Hier wird es bei Anmeldung < /p>
zugewiesen[code]Future signInWithEmail(String email, String password) async {
final user = userCredential.user;
if (user == null) {
throw Exception('Sign-in failed, no user returned');
}
// Force refresh of the ID token after login:
final idToken = await user.getIdToken(true);
debugPrint('Successfully got fresh ID token: ${idToken.substring(0, 20)}...');
return user;
< /code>
Und dies ist ein Beispiel für Funktionsaufruf < /p>
final user = FirebaseAuth.instance.currentUser;
// If the user isn't signed in, handle it or show an error:
if (user == null) {
debugPrint('No user found; cannot verify subscription');
return;
}
// Optionally refresh the token again, if needed:
final refreshedToken = await user.getIdToken(true);
debugPrint('Refreshed token before calling function: ${refreshedToken.substring(0, 20)}...');
try {
// Call your secure Firebase Function / Cloud Run endpoint here
// (This is just an example – your actual call may differ)
final result = await _firebaseService.callFunction('validateIosPurchase', {
'receipt': /* iOS receipt data */,
'subscriptionId': purchase.productID,
'debug': false,
});
debugPrint('Purchase verified: $result');
// …perform additional logic, e.g. updating premium status…
} catch (e) {
debugPrint('Purchase verification error: $e');
rethrow; // or handle the error
}
}
[/code]