Warum funktioniert signInWithPhoneNumber von @capacitor-firebase/authentication nicht mit der Ionic-App für iOS?

Post a reply

Smilies
:) :( :oops: :chelo: :roll: :wink: :muza: :sorry: :angel: :read: *x) :clever:
View more smilies

BBCode is ON
[img] is ON
[flash] is OFF
[url] is ON
Smilies are ON

Topic review
   

Expand view Topic review: Warum funktioniert signInWithPhoneNumber von @capacitor-firebase/authentication nicht mit der Ionic-App für iOS?

by Guest » 13 Jan 2025, 20:12

Ich entwickle eine Ionic/Angular-Anwendung unter Verwendung der @capacitor-firebase/authentication-Bibliothek für die Benutzerauthentifizierung per Telefonnummer.
Ich habe die folgende Methode implementiert, um mich mit einer Telefonnummer anzumelden in meinen Diensten:

Code: Select all

public async signInWithPhoneNumber(options: SignInWithPhoneNumberOptions,
loading: HTMLIonLoadingElement
): Promise {
try {
console.log("Attempting to sign in with phone number:", options.phoneNumber);

const user = await FirebaseAuthentication.signInWithPhoneNumber(options);

console.log('Sign-in successful');
} catch (error) {
console.error('Error during phone number verification:', error);
} finally {
await loading.dismiss();
}
}
Mein Service-Konstruktor:

Code: Select all

constructor(private readonly ngZone: NgZone) {

FirebaseAuthentication.removeAllListeners().then(() => {

FirebaseAuthentication.addListener('phoneCodeSent', async (event) => {
this.ngZone.run(() => {
console.log("phoneCodeSent"+ event.verificationId);
});
});

FirebaseAuthentication.addListener(
'phoneVerificationCompleted',
async (event) => {
this.ngZone.run(() => {
console.log("phoneVerificationCompleted"+ event.user?.uid);
});
},
);

FirebaseAuthentication.addListener(
'phoneVerificationFailed',
async (event) => {
this.ngZone.run(() => {
console.log("phoneVerificationFailed"+ event.message);
});
},
);

});
}
Erwartetes Verhalten
Ich erwarte den Aufruf von FirebaseAuthentication.signInWithPhoneNumber(options) Firebase sendet eine SMS Code und signInWithPhoneNumber(options), um ein Objekt mit Benutzerinformationen oder einer Verifizierungs-ID zurückzugeben, die ich zur Überprüfung des SMS-Codes verwenden kann. Zusammengefasst: LASSEN SIE EIN EREIGNIS AUFTRETEN.
Tatsächliches Verhalten
Beim Ausführen dieses Codes auf einem iOS-Gerät, der Xcode-Konsole protokolliert Folgendes:

Code: Select all

⚡️  [log] - Attempting to sign in with phone number: +573218116768
⚡️  To Native ->  FirebaseAuthentication signInWithPhoneNumber 110818811
⚡️  TO JS undefined
⚡️  [log] - Sign-in successful
Die Antwort von der nativen Ebene (

Code: Select all

TO JS
) ist undefiniert und es wird kein Fehler ausgegeben. Außerdem sendet Firebase keine SMS-Nachricht. Schließlich werden im Konstruktor meines Dienstes die Listener für alle möglichen Ereignisse, die von meiner Methode FirebaseAuthentication.signInWithPhoneNumber(options) erzeugt werden, konfiguriert, aber in der Konsole wird nichts ausgegeben, als ob kein Ereignis aufgetreten wäre
Zusätzliche Details
Firebase-Konfiguration:
  • Die Telefonauthentifizierung ist in der Firebase-Konsole aktiviert.
  • Die Datei GoogleService-Info.plist ist ordnungsgemäß konfiguriert und
    mit dem Projekt synchronisiert.
Umgebung:
  • Ionisch: 8,x
  • Winkelig: ^18,x
  • @capacitor- Firebase/Authentifizierung: ^6.3.1
  • Kondensator: 6.x
Was ich überprüft habe:

[*]Die Firebase-Konfiguration ist korrekt (mit Ausnahme der APNs, die ich nicht
eingerichtet habe, weil ich weiß, dass sie für die Telefonanmeldung nicht erforderlich sind).

[*]Die Telefonnummer ist im Ausland Format.

[*]Kondensator-Plugins sind korrekt installiert und synchronisiert.


Schlüsselfragen:

[*]Was könnte dazu führen, dass signInWithPhoneNumber nicht auftritt ein Ereignis generieren und Firebase sendet keinen SMS-Code?

[*]Müssen APNs-Zertifikate konfiguriert werden, damit signInWithPhoneNumber unter iOS funktioniert, auch wenn ich nur die Telefonauthentifizierung verwende?


Ich würde mich über Hinweise oder zusätzliche Debugging-Schritte zur Behebung dieses Problems freuen.

Top