Я пытаюсь добавить пользовательские заявки в свой проект vue, чтобы я мог изменить то, что пользователь может видеть / делать. Как это работает, у меня есть поле ввода, в которое я введу электронное письмо от пользователя, и оно добавит к нему претензию администратора. Когда я пошел проверить его, я получил объект с ошибкой «errorInfo: Object {code:« auth / invalid-email », сообщение:« Адрес электронной почты неправильно отформатирован ».}
Я ужепопытался найти, что не так в моем коде, но из примеров, которые я нашел, код кажется правильным.
Я отправляю электронное письмо test@test.com, которое у меня есть в качестве примера, и я проверилvue.js devtools, и я передаю строку с test@test.com
Вот мой код функции index.js
const functions = require("firebase-functions");
const admin = require("firebase-admin");
admin.initializeApp();
exports.addAdminRole = functions.https.onCall(async (data, context) => {
//get user and add custom claim (admin)
try {
const user = await admin.auth().getUserByEmail(data.email);
await admin.auth().setCustomUserClaims(user.uid, {
admin: true
});
return {
message: `Success! has been made admin`
};
} catch (err) {
return err;
}
});
А вот мой компонент vue, где явызов функции
<template>
<div class="home">
<h3>Welcome to Site</h3>
<h3>Add user to admin</h3>
<div class="row">
<form @submit.prevent="addAdmin()" class="col s12">
<div class="row">
<div class="input-field col s12">
<input type="email" v-model="email" required />
<label>Email</label>
</div>
</div>
<button type="submit" class="btn">Submit</button>
<router-link to="/members" class="btn grey">Cancel</router-link>
</form>
</div>
</div>
</template>
<script>
import { db, fc } from "../data/firebaseInit";
export default {
name: "home",
data() {
return {
email: null
};
},
methods: {
addAdmin() {
const addAdminRole = fc.httpsCallable("addAdminRole");
addAdminRole(this.email).then(result => {
console.log(result);
});
}
}
};
</script>