Понимание того, как настроить облачную пожарную базу данных - PullRequest
0 голосов
/ 17 апреля 2020

Я пытаюсь учиться Android Студия из учебника. Был следующий код для регистрации:

Map<String, Object> user = new HashMap<>();
user.put("email", mAuth.getCurrentUser().getEmail());
db.collection("users")
        .document(mAuth.getCurrentUser().getUid())
        .set(user)
        .addOnSuccessListener(new OnSuccessListener<Void>() {
            @Override
            public void onSuccess(Void v) {
                //code
            }
        })
        .addOnFailureListener(new OnFailureListener() {
            @Override
            public void onFailure(@NonNull Exception e) {
                //code
            }
        });

Я пытаюсь выяснить, как они хотели, чтобы БД выглядела. Я использую Firebase Cloud Firestore. Как я понимаю, мне нужно создать коллекцию под названием users и это то, что я сделал. Затем я попал в следующее окно:

enter image description here

Что мне делать дальше? Как я понял из кода, я получаю документ, используя UID пользователя, но у меня его нет, так что мне следует заполнять поля? Как должен выглядеть JSON

Ответы [ 2 ]

1 голос
/ 17 апреля 2020

Когда вы делаете .set() в своей коллекции, она создает документ с вашим сгенерированным идентификатором пользователя

db.collection("users")
        .document(mAuth.getCurrentUser().getUid())
        .set(user)

Здесь вы говорите, что внутри пользователей коллекции создайте документ, идентификатор которого является текущим авторизовался в userID и затем установил объект пользователя как данные этого документа

После того, как вы запустили размещенный вами код, он сам сгенерирует пользователя в этой коллекции, если вы не увидите его непосредственно у себя. Консоль Firebase, refre sh ваш браузер

Что мне делать дальше? Как я понял из кода, я получаю документ, используя UID пользователя, но у меня его нет, так что мне заполнять поля?

Это неправильно, вы не получаете пользователя потому что вы используете .set(), если вы хотите получить этот пользовательский документ, вам необходимо изменить его на .get()

Проверьте официальные документы, если у вас есть какие-либо сомнения https://firebase.google.com/docs/firestore/quickstart?hl=en

0 голосов
/ 17 апреля 2020

Firebase Firestore - это новая модель данных, более сложная, чем база данных реального времени (дерево JSON). Короче говоря, Firestore - это набор данных, организованных в коллекции, документы и вложенные коллекции.

Путь root должен содержать только коллекций (вы создаете файл с именем users). В коллекциях должно быть документов , считайте их объектами или картами с парами ключ-значение.

A документ сам по себе не может содержать более 1 мегабайта данных. документ может иметь подколлекции , и таким образом вы получаете доступ к этой новой модели данных, называемой Firebase Firestore, всегда чередуясь между collection и document .

Я рекомендую Youtube Firestore playlist , чтобы более четко понимать эту новую базу данных.

PS: Она не генерирует JSON древовидную базу данных в реальном времени.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...