我目前正在使用Firebase在我的Vue.js項目中驗證用戶名和唯一性。用戶名和密碼驗證始終返回true(使用firebase)
我的方法是這樣的。首先,我將使用VUE資源陣列中的所有已註冊/保存用戶存儲created
下鉤:
//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;
});
數組將包含兩個用戶的用戶名dyalibidyalibi和marantzmarantz和密碼dyalibidyalibi和marantzmarantz連續(用戶名和密碼相同)。
然後在那之後,在computed
屬性下,循環訪問數組,並檢查當前輸入的密碼或用戶名是否與該數組中的某個用戶相匹配。如果是這樣的話,那麼它的獨特和返回true
一樣,這是不是唯一的,將返回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;
}
}
當我試圖進入桑尼和桑尼兩個用戶名和密碼,控制檯顯示true
這是預期的輸出。那麼我試圖marantzmarantz和sonny(反之亦然)它顯示false
,這是預期再次。但是當我試圖進入dyalibidyalibi和桑尼(反之亦然),它顯示true
這不應該是這種情況,因爲註冊用戶的一個早已dyalibidyalibi的用戶名或密碼!
我的循環有什麼問題嗎?或我的布爾表達式?我如何解決這個問題,以便在將用戶名和密碼保存到數據庫之前,註冊的用戶將始終擁有唯一的用戶名和密碼?
編輯:我把一些console.log()
的for
循環內,並且似乎計數器i
是停留在0和它從來沒有達到1.我檢查數組的長度,它總是顯示2,所以我認爲沒有任何問題在長度上。什麼似乎是我錯過的問題?它已經兩天,我無法弄清楚
它看起來對我像你當什麼*不*匹配返回true。這不正是你想要的嗎? – theGleep
@theGleep是的,這是我的目標。是'真'意味着用戶名和密碼是唯一的 – Kaddy03
所以你想確保...?沒有用戶名匹配任何密碼?或者沒有兩個用戶名匹配?或者用戶名不在數據庫中? – theGleep