使用此概念/教程进行项目(https://angularfirebase.com/lessons/custom-usernames-with-firebase-authentication-and-angular/) 但是它在firebase中,我需要等效的Firestore。
我尝试了以下方法:
resultSet = Persistence.executeQueryStatement(aConnection, "SELECT * "
+ "FROM sectionmitschueler");
while (resultSet.next()) {
for(SectionTO eineSectionTO : eventTO.getSections()) {
if(resultSet.getInt("sectionId") == eineSectionTO.getSectionId())
System.out.println(sectionTO.getSectionId());
sectionTO.getSchueler().add(resultSet.getInt("schuelerId"));
}
}
}
我只想检索集合中的特定字段,并检查它是否可用。
谢谢
答案 0 :(得分:0)
您不需要通过snapShotChanges / valueChanges监听更改。
只需简单地获取一个limit(1)(我们不在乎用户名是否超过1个),然后检查大小是否>0。如果> 0 =>使用了用户名,则可以使用用户名:
const db = firebase.firestore()
const isUserNameTaken = async (tag: string): Promise<boolean> => {
const query = db.collection('usernames').where('username', '==', tag).limit(1)
const docs = await query.get()
return !!docs.size
}
// returns true if username taken otherwise returns false
const isTaken = await isUserNameTaken('John')
if (isTaken) // do something