Обнуление после получения данных по транзакции в Android FireStore - PullRequest
0 голосов
/ 01 апреля 2019

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

По сути, я хочу получить последний счетчик, созданный во вложенной коллекции сервисного центра (по номеру), который сохраняется как атрибут вдокумент самого центра обслуживания и создайте счетчик с новым номером, а также обновите атрибут «lastCounter» в центре обслуживания.

Я извлекаю «lastCounter» как двойное число, я пытался использовать long, но он делаетне работа.Я не могу получить ни один из других атрибутов либо.

Это моя база данных

            DocumentReference scReference = db
                    .collection("Services")
                    .document(uuid);

            Log.i("AAA", "STARTED TRANSACTION");

            // get the service centre
            DocumentSnapshot serviceCenterSnapshot = transaction.get(scReference);

            Log.i("AAA", serviceCenterSnapshot.getId()); // this one retireves the id which shows that it's working

            Log.i("AAA", "last counter = " + serviceCenterSnapshot.getDouble("lastCounter")); // null
            Log.i("AAA", "branch = " + serviceCenterSnapshot.getString("branch")); // null
            ```
            // get the last counter added and increment it
            double lastCounterNumber = serviceCenterSnapshot.getDouble("lastCounter");
            double newCounterNumber = lastCounterNumber + 1;

            Counter counter = new Counter(newCounterNumber);

            // update the service centre with the last counter added
            transaction.update(scReference, "lastCounter", newCounterNumber);

            // add the new counter
            transaction.set(scReference.collection("Counters").document(), counter);
            return null;

LOGS

2019-04-01 18:05:32.966 29597-29656/com.zayed.qmsadmin I/AAA: STARTED TRANSACTION
2019-04-01 18:05:33.405 29597-29656/com.zayed.qmsadmin I/AAA: rkO0i0sQHuWFWqNUb8J3XE1QV6E3
2019-04-01 18:05:33.405 29597-29656/com.zayed.qmsadmin I/AAA: last counter = null
2019-04-01 18:05:33.405 29597-29656/com.zayed.qmsadmin I/AAA: branch = null
2019-04-01 18:05:33.406 29597-29597/com.zayed.qmsadmin I/AAA: FINISHED TRANSACTION
2019-04-01 18:05:33.406 29597-29597/com.zayed.qmsadmin I/AAA: Attempt to invoke virtual method 'double java.lang.Double.doubleValue()' on a null object reference
...