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();
}
}
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);
});
},
);
});
}
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
Code: Select all
TO JS
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.
- Ionisch: 8,x
- Winkelig: ^18,x
- @capacitor- Firebase/Authentifizierung: ^6.3.1
- Kondensator: 6.x
[*]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.