0
我在Android中擁有一個Firebase數據庫,其中我擁有「USERS」根,並且有多個用戶使用密鑰電子郵件ID。當電子郵件ID是Firebase中的密鑰時,查詢電子郵件ID的孩子,以檢查孩子是否存在
所以數據庫的模式是這樣的,並且數據庫使用電子郵件ID爲每個用戶主鍵:
{
"USERS":
{ "[email protected],COM" :
{ "USERNAME": "abc",
"URL": "SOME_URL",...
}
}
{ "[email protected],COM" :
{ "USERNAME": "dfe",
"URL": "SOME_URL2",...
}
}
.......
.......
.......
}
現在的電子郵件ID作爲對各主鍵用戶。在電子郵件ID內是我想要做的查詢的用戶名密鑰。我想檢查用戶名是否存在? 所以通常的辦法做到這一點是有一個數據庫參考 - 像這個 -
DatabaseReference mDBRef = FirebaseDatabase.getInstance().getReference("/USERS/" + ???? + "/USERNAME");
然後在數據庫中添加引用值事件偵聽器。在dataSnapshot檢查它是否存在 -
dataSnapshot.exists()
現在我不知道在「USERS」後面追加什麼。此外,我希望數據庫查詢搜索用戶名儘可能高效。什麼可能是迭代通過電子郵件ID並檢查電子郵件ID的子鍵是否存在的可能方式?
是的,但在此之前,加.indexOn屬性,我需要遍歷在用戶名的父母身上,這是電子郵件ID。而且我不知道該怎麼做,因爲電子郵件ID是關鍵。 – Aman
爲什麼你需要刺激?該查詢將僅返回所需用戶名的結果。 –
如果沒有結果,那就意味着用戶名不存在,否則你將得到一個datasnapsot,並且可以通過datasnapsot.getKey()提取電子郵件ID() –