Ich versuche, die Firebase Admin-Authentifizierung zu verwenden, um Benutzer per Telefonnummer über Cloud-Funktion zu erhalten. Hier ist die Cloud-Funktion (abzüglich einer Anfrage Körper Validierung).getUserByPhoneNumber gibt immer Anfrage Fehler
module.exports = (req, res) => {
const phone = req.body.phone;
admin.auth().getUserByPhoneNumber(phone).then(userRecord => {
res.send({ user: userRecord });
})
.catch(getUserErr => {
res.status(422).send({ error: getUserErr });
});
};
wo Telefon ist E.164-konform. Ich erhalte den folgenden Fehler in der Antwort:
Error: could not handle the request
Ein paar wichtige Informationen. Ich rufe das von einer Cloud-Funktion an. Außerdem erstelle ich derzeit anonyme Benutzer mit Telefonnummern (über eine andere Cloud-Funktion), ohne den Telefonanmeldungsanbieter zu verwenden.
admin.auth().createUser({
phoneNumber: phone
})
Ich habe versucht, am Telefon Auth Anbieter drehen (zusätzlich zu dem anonymen Anmelde-Provider), aber das scheint nicht zu Materie.
Wer weiß, was würde das verursachen? Die Dokumentation schweigt über alle anderen notwendigen Einstellungen.
Können Sie die vollständige Implementierung Ihrer Funktion teilen? Oder zumindest der Teil, der die obige Methode aufruft? –
Bearbeitete Frage, um volle Funktion einzuschließen. Ich würde denken, wenn die Funktion einen Datensatz nicht finden konnte, würde es dasselbe wie getUser und getUserByEmail tun und einen Fehler zurückgeben wie: { "error": { "code": "auth/user-not-found", "Nachricht": "Es gibt keinen Benutzerdatensatz, der dem angegebenen Bezeichner entspricht." } } – Paul
Ja. Dies ist eigentlich kein Fehler, der vom Admin SDK ausgelöst wurde. Etwas anderes versagt hier. Siehe https://stackoverflow.com/questions/45600367/cloud-functions-for-firebase-error-could-not-handle-the-request für einige hilfreiche Ideen bei der Fehlersuche. –