Как я могу проверить, есть ли значение, например имя существует в коллекции в любом из документов в Cloud Firestore?

Я хочу проверить, есть ли значение, например (имя: «Джон») существует в коллекции любого документа в моем Cloud Firestore, потому что в этом случае я не хочу создавать новый документ с таким именем (в данном случае «Джон»). Как я могу проверить, существует ли имя?

См. также:  Получить информацию из подгруппы firestore + FLUTTER
Понравилась статья? Поделиться с друзьями:
IT Шеф
Комментарии: 1
  1. Ian Bell

    Предполагая, что у вас есть в Firestore коллекция под названием users, чтобы проверить, существует ли уже пользователь с именем John, используйте следующие строки кода:

    FirebaseFirestore rootRef = FirebaseFirestore.getInstance();
    CollectionReference usersRef = rootRef.collection("users");
    Query queryUsersByName = usersRef.whereEqualTo("name", "John");
    queryUsersByName.get().addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() {
        @Override
        public void onComplete(@NonNull Task<QuerySnapshot> task) {
            if (task.isSuccessful()) {
                for (DocumentSnapshot document : task.getResult()) {
                    if (document.exists()) {
                        Log.d("TAG", "name already exists");
                    } else {
                        //Do what you need to do
                    }
                }
            } else {
                Log.d("TAG", "Error getting documents: ", task.getException());
            }
        }
    });
    

    Результатом приведенного выше кода будет оператор журнала с уже существующим именем сообщения, если пользователь с именем Джон уже существует в коллекции пользователей.

    в дополнение к ответу @Alex, чтобы узнать, не существует ли имя, добавьте оператор if перед итерацией, чтобы проверить, является ли task.getResult (). isEmpty () пустым, это означает, что пользователя с таким именем нет. person Ian Bell; 05.06.2021

Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: