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 (
) 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.
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]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();
}
}
[/code]
Mein Service-Konstruktor:
[code]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);
});
},
);
});
}
[/code]
[b]Erwartetes Verhalten[/b]
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.
[b]Tatsächliches Verhalten[/b]
Beim Ausführen dieses Codes auf einem iOS-Gerät, der Xcode-Konsole protokolliert Folgendes:
[code]⚡️ [log] - Attempting to sign in with phone number: +573218116768
⚡️ To Native -> FirebaseAuthentication signInWithPhoneNumber 110818811
⚡️ TO JS undefined
⚡️ [log] - Sign-in successful
[/code]
Die Antwort von der nativen Ebene ([code]TO JS[/code]) 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
[b]Zusätzliche Details[/b]
Firebase-Konfiguration:
[list]
[*]Die Telefonauthentifizierung ist in der Firebase-Konsole aktiviert.
[*]Die Datei GoogleService-Info.plist ist ordnungsgemäß konfiguriert und
mit dem Projekt synchronisiert.
[/list]
Umgebung:
[list]
[*]Ionisch: 8,x
[*]Winkelig: ^18,x
[*]@capacitor- Firebase/Authentifizierung: ^6.3.1
[*]Kondensator: 6.x
[/list]
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.