Je travaille actuellement sur la validation ou l'unicité du nom d'utilisateur dans mon projet Vue.js avec Firebase.La validation du nom d'utilisateur et du mot de passe renvoie toujours vrai (avec Firebase)
Mon approche est la suivante. D'abord, je vais stocker tous les utilisateurs enregistrés/sauvegardés dans un tableau sous le crochet created
en utilisant la vue-ressource:
//RETRIEVE REGISTERED TAILORS
this.$http.get('https://nots-76611.firebaseio.com/tailors.json').then(function(data){
return data.json();
}).then(function(data){
var usersArray = [];
for (let key in data){
data[key].id = key;
usersArray.push(data[key]);
}
this.regTailors = usersArray;
});
le tableau contiendra deux utilisateurs avec le nom d'utilisateur dyalibidyalibi et marantzmarantz, et mot de passe dyalibidyalibi et marantzmarantz consécutivement (les noms d'utilisateur et les mots de passe sont les mêmes).
Ensuite, sous les propriétés computed
, je parcourt le tableau et vérifie si AUCUN mot de passe ou nom d'utilisateur ne correspond à l'un des utilisateurs du tableau. Si tel est le cas, alors il est unique et retournera true
ailleurs, il est unique et retournera false
:
isUnique: function(){
for (var i = 0; i < this.regTailors.length; i++) {
if((this.tailor.tUsername!=this.regTailors[i].tUsername) && (this.tailor.tPassword!=this.regTailors[i].tPassword))
return true;
else
return false;
}
}
lorsque je tente d'entrer sonny et sonny pour les nom d'utilisateur et le mot de passe, la console affiche true
qui est la sortie attendue. alors j'ai essayé marantzmarantz et sonny (et vice versa) il montre false
, qui est prévu encore. Mais quand j'essayé d'entrer dyalibidyalibi et sonny (et vice versa), il montre true
qui ne devrait pas être le cas puisque l'un des utilisateurs enregistrés a déjà le nom d'utilisateur ou mot de passe dyalibidyalibi!
Y at-il un problème avec ma boucle? ou mon expression booléenne? Comment puis-je résoudre ce problème pour que les utilisateurs qui s'inscrivent aient toujours le nom d'utilisateur et le mot de passe uniques avant de l'enregistrer dans la base de données?
EDIT: J'ai mis quelques console.log()
dans la boucle for
et il semble que le compteur i
est bloqué à 0 et il n'a jamais atteint 1. J'ai vérifié la longueur du tableau et il affiche toujours 2 Je pense donc il n'y a pas de problème sur la longueur. Quel semble être le problème que je manque? il a été deux jours et je ne peux pas le comprendre
Il me semble que vous retournez vrai quand rien * ne * correspondance. N'est-ce pas le contraire de ce que vous cherchez? – theGleep
@theGleep oui, c'est ce que je vise. être «vrai» signifie que le nom d'utilisateur et le mot de passe sont uniques – Kaddy03
Donc, vous voulez vous assurer que ...? aucun nom d'utilisateur ne correspond à un mot de passe? Ou que deux noms d'utilisateur ne correspondent pas? Ou que le nom d'utilisateur n'est pas déjà dans la base de données? – theGleep