我正在检查电子邮件是否已经注册
query=googleRef.orderByChild("email").equalTo(newEmail).addValueEventListener(object :ValueEventListener{
override fun onCancelled(p0: DatabaseError) {
println(p0.code)
}
override fun onDataChange(p0: DataSnapshot) {
if(p0.exists())
{
println("Yes user exists")
}
else if(!p0.exists())
{
println("Users dont exists")
}
}
注释代码:
我曾经使用过插入操作
googleRef.child("userID").push().setValue(userId)
googleRef.child("gname").push().setValue(userName)
googleRef.child("email").push().setValue(reEmail)
googleRef.child("photoUrl").push().setValue(userpicUrl)
答案 0 :(得分:0)
如果添加两个用户,则添加代码的方式将导致这样的结构:
user_number= int(input("What is your number? "))
check_number=int(input("What is the number to check against. "))
factor = 1
print(check_number, factor*user_number)
while(check_number>(factor*user_number)):
print(factor)
print("Not working.")
factor+=1
working_factor = check_number%user_number+1
print("using modulo: ", working_factor)
print("Working factor: ",factor)
因此,对于每个用户的每个属性,您都有一个单独的生成的推送ID(以"googleRef": {
"userID": {
"-Ldfs32189eqdqA1": "userID1",
"-Ldfs32189eqdqA5": "userID2"
},
"gname": {
"-Ldfs32189eqdqA2": "gname1",
"-Ldfs32189eqdqA6": "gname2"
},
"email": {
"-Ldfs32189eqdqA3": "email1",
"-Ldfs32189eqdqA7": "email2"
},
"photoUrl": {
"-Ldfs32189eqdqA4": "photoUrl1",
"-Ldfs32189eqdqA8": "photoUrl2"
}
}
开头的键),这是非常不常见的。
存储用户信息的更惯用的形式是:
-
或者(甚至更好):
"googleRef": {
"-Ldfs32189eqdqA1": {
"userID": "userID1",
"gname": "gname1",
"email": "email1",
"photoUrl": "photoUrl1"
},
"-Ldfs32189eqdqA5": {
"userID": "userID2",
"gname": "gname2"
"email": "email2"
"photoUrl": "photoUrl2"
},
}
后两个之所以更常见,是因为它们将每个用户的信息分组在一起,这使得更容易/可能找到每个用户的信息。在这两种情况下,您都可以在查询中找到具有特定电子邮件地址的用户。
最后一个最好的原因是,每个用户的信息都存储在用户ID下,该ID已被保证是唯一的。这种结构可以通过用户的UID查找用户信息,而无需查询。
要编写类似于上一个示例的结构,请使用:
"googleRef": {
"userID1": {
"gname": "gname1",
"email": "email1",
"photoUrl": "photoUrl1"
},
"userID2": {
"gname": "gname2"
"email": "email2"
"photoUrl": "photoUrl2"
},
}
最后一点:由于数据是从Firebase异步加载的,因此您无法返回该节点是否存在。要详细了解其含义以及常见的解决方法(定义回调接口),请参见getContactsFromFirebase() method return an empty list