Если вы хотите сделать это проще, вы можете использовать Firestore вместо Realtime DB . Но, если вы все еще хотите использовать RealtimeDB, вы можете создать условный цикл, например:
if(edtUsername.text.toString == username){
// Your code
}
В приложениях Grails есть компонент, называемый «persistenceInterceptor», который можно использовать для этого.
Посмотрите этот пример из плагина JMS о том, как его использовать:
Вот интерфейс:
И Hibernate impl:
Вам нужно поместить любые вызовы GORM в закрытие withTransaction. Пример взят из обсуждения многопоточности на https://fbflex.wordpress.com/2010/06/11/writing-batch-import-scripts-with-grails-gsql-and-gpars/
Однопоточный
user = User.findByUsername( photo.username )
многопоточный
User.withTransaction{
user = User.findByUsername( photo.username )
}