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
}
}