В Android мы можем слушать внутри коллекции с помощью простых запросов / составных запросов, задав запрос следующим образом.
mQuery = mDatabase.collection("Users")
.document(FirebaseAuth.getInstance().getCurrentUser().getUid())
.collection("Request").whereEqualTo("status","received")
.whereEqualTo("type","friend_request")
.orderBy("time", Query.Direction.DESCENDING)
.limit(5);
Затем настройте слушателя на основе этого запроса следующим образом.
mQuery.addSnapshotListener(new EventListener<QuerySnapshot>() {
@Override
public void onEvent(@javax.annotation.Nullable QuerySnapshot queryDocumentSnapshots, @javax.annotation.Nullable FirebaseFirestoreException e) {
//If something went wrong
if (e != null)
Log.w(TAG, "ERROR : ", e);...//foreach loop
Могу ли я делать подобные вещи с помощью Cloud Function? В настоящее время я использую эту строку кода, и она работает.
functions.firestore.document("Users/{user_id}/Notifications/{notification_id}").onCreate((added, context) => {
Но для некоторых изменений, я хотел бы вызвать функцию только в том случае, если поле документа равно чему-то, тогда я думаю, что цикл foreach?
Другое дело, как мне теперь получить идентификатор документа из коллекции «Уведомления», если запросы возможны, теперь я использую подстановочный знак, а затем извлекаю его вот так.
const notification_id = context.params.notification_id;