簡體   English   中英

檢查Firebase數據庫中是否存在用戶名。

[英]Checking to see if username exists in firebase DB.

我正在嘗試通過UI中的@IBAction從用戶獲取用戶名。

我的目標是檢查用戶名是否已在Firebase中存在。 如果不存在,請注冊。 如果確實存在,我想做一些其他的事情。

這是我的代碼。

@IBAction func enterUsername(){

    let enteredUsername = usernameText!.text!
    let namesRef = ref.childByAppendingPath("/usernames/\(enteredUsername)")

    namesRef.observeEventType(.Value, withBlock: {
        snap in

        if (snap.value is NSNull){
            let userNameAndUUID = ["Username" : enteredUsername, "UUID" : self.appDelegate.UUID]
            namesRef.setValue(userNameAndUUID)
            print("first block")
        }else {
            print("second block")
            //do some other stuff
        }
    })
}

我遇到的問題是,如果用戶名是唯一的(不存在),則if / else的兩個打印語句都在運行。 輸出:第一塊第二塊

如果名稱不是唯一的,則它會正確跳過if / else的if部分。

為什么if / else語句的兩個部分都運行?

謝謝你的幫助。

您所看到的行為確實是有意的。 由於要附加觀察者,因此第一個if塊將以唯一的名稱運行,但是在該塊內,您需要設置一個值。

這將再次觸發回調,這一次將遍歷else塊。

更改此代碼的正確方法是使用observeSingleEventOfType ,以便您只讀取一次該值,而不會連續觀察它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM