[英]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.