[英]I have a question, if I used firebase facebook login how can get username or email?
[英]How can i login in my android application using Username and Email both(SQLite Database used)?
我正在研究一個示例,其中用戶可以同時使用其USERNAME和EMAIL登錄,但是在我的代碼中,該操作僅允許USERNAME使用,而我的身份驗證方法如下所示,
public String getSingleEntry(String userNameOrEmail)
{
Cursor cursor=db.rawQuery("select * from SIGNUP1 where USERNAME=?", new String[]{userNameOrEmail});
if(cursor.getCount()<1) // UserName Not Exist
{
cursor.close();
return "NOT EXIST";
}
cursor.moveToFirst();
String password= cursor.getString(cursor.getColumnIndex("PASSWORD"));
cursor.close();
return password;
}
我的另一種方法將從SQLite數據庫獲取所有用戶數據,
public String getUserData(String userNameOrEmail){
Cursor c = db.rawQuery("select * from SIGNUP1 where USERNAME="+"\""+userNameOrEmail+"\"", null);
c.moveToFirst();
String result="";
String iFirstName = c.getString(c.getColumnIndex("FIRSTNAME"));
String iLastName = c.getString(c.getColumnIndex("LASTNAME"));
String iUserName = c.getString(c.getColumnIndex("USERNAME"));
String iEmail = c.getString(c.getColumnIndex("EMAIL"));
String iPassword = c.getString(c.getColumnIndex("PASSWORD"));
String iGender = c.getString(c.getColumnIndex("GENDER"));
String iHobbies = c.getString(c.getColumnIndex("HOBBIES"));
for(c.moveToFirst(); !c.isAfterLast(); c.moveToNext()){
result = result + "\nName : "+iFirstName + " " +iLastName + "\nUserName : "+iUserName + "\nEmail : "+iEmail + "\nPassword : "+ iPassword + "\nYou are : " +iGender + "\nYour Hobbies : "+iHobbies;
}
return result;
}
是否有我必須使用的查詢? 我不知道如何通過WHERE子句使用SELECT查詢,並且假設有兩個參數(USERNAME =?或EMAIL =?)。
提前致謝。
查詢應該是這樣的:
select * from SIGNUP1 where (USERNAME='someusername' or EMAIL='someemail')
並且您應該替換''之間的字符串
public String getSingleEntry(String userNameOrEmail,userEmail)
{
Cursor cursor=db.rawQuery("select * from SIGNUP1 where (USERNAME=? or EMAIL=?)", new String[]{userNameOrEmail,userEmail});
if(cursor.getCount()<1) // UserName Not Exist
{
cursor.close();
return "NOT EXIST";
}
cursor.moveToFirst();
String password= cursor.getString(cursor.getColumnIndex("PASSWORD"));
cursor.close();
return password;
}
我將指向一個允許您實驗和查看查詢結果的資源,以便您可以學習: http : //www.w3schools.com/sql/sql_and_or.asp
一旦您了解了如何使用OR函數,您就不會有問題了:)。
(如果您希望我可以發布實際答案,但我希望您學習而不是復制)
編輯:我看不到任何原因您將無法在SQLite中使用OR。 甚至還有一個用於OR優化的文檔頁面 。 您是否嘗試過使用它?
解決了,我剛剛將查詢修改為“從SIGNUP1中選擇*,其中USERNAME =“ +” \\'“ + userNameOrEmail +” \\'+ \\“ OR EMAIL =” +“ \\'” + userNameOrEmail +“'”,null);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.