2017-06-13 154 views
0

我正在創建一個註冊頁面,我要檢查輸入的特定電子郵件或輸入的移動電話是否已存在或不。我認爲_emailText作爲一個字符串不被接受,但如何獲取電子郵件和密碼。 這裏是下面的代碼:

public boolean userExist(){ 
    //private Firebase mRef = new Firebase("https://abcdefgh.firebaseio.com/users/"); 
    mRef.child(_emailText.getText().toString()).addListenerForSingleValueEvent(new ValueEventListener() { 
     @Override 
     public void onDataChange(DataSnapshot dataSnapshot) { 
      if(dataSnapshot.exists()){ 
       Toast.makeText(getBaseContext(), "Email already exist. Please choose a different one", Toast.LENGTH_SHORT).show(); 
       _emailText.setError("Email already exist. Please choose a different one"); 
       valid = false; 
      } 
      else{ 
       email = _emailText.getText().toString(); 
      } 
     } 

     @Override 
     public void onCancelled(FirebaseError firebaseError) { 

     } 
    }); 

    mRef.child(_mobileText.getText().toString()).addListenerForSingleValueEvent(new ValueEventListener() { 
     @Override 
     public void onDataChange(DataSnapshot dataSnapshot) { 
      if(dataSnapshot.exists()){ 
       _mobileText.setError("Mobile Number already exist"); 
       valid = false; 

      } 
      else{ 
       mobile = _mobileText.getText().toString(); 

      } 
     } 

     @Override 
     public void onCancelled(FirebaseError firebaseError) { 

     } 
    }); 


    return valid; 
} 

和數據庫結構是這樣的:

+0

您的鑰匙不能包含句點,如錯誤狀態。替換他們與其他字符 –

+0

請編輯您的文章,包括您的數據庫的結構 –

+0

結構是在「abcdefgh」有一個用戶,如果你註冊然後電子郵件,移動和所有創建,我在嘗試要做的是在註冊時獲取這些電子郵件和手機,並比較我的edittext包含的內容。 – divJ

回答

1

你的孩子關鍵是5Ri...,而不是電子郵件

你要找的這個

mRef = new Firebase("https://abcdefgh.firebaseio.com/"); 
mRef.child("users") 
    .orderByChild("email") 
    .equalTo("[email protected]").addListener...() { 

}; 
+0

我這樣做了,但我點擊了創建帳戶按鈕,它仍然會進行下一個活動,然後調用Toast錯誤。但它不應該,它應該首先進入偵聽器方法並調用偵聽器方法,並且不應該首先進入下一個活動。 – divJ

+0

但原來的錯誤信息消失了嗎? –

+1

是的,原始問題已解決 – divJ