Логическое значение не отображается в объекте Firestore - PullRequest
0 голосов
/ 20 ноября 2018

У меня есть коллекция Firebase, которая отслеживает потоки сообщений пользователя, сохраняя объекты под названием MessageThreads в качестве документов.Вот класс / конструкторы этого объекта:

public class MessageThread {
    private String partnerName;
    private String partnerID;
    private String threadID;
    private Message lastMessage;
    private boolean notificationsOn;


    public MessageThread() {

    }


    public MessageThread(String partnerName, String partnerID, String threadID, boolean notificationsOn) {
        this.partnerName = partnerName;
        this.partnerID = partnerID;
        this.threadID = threadID;
        this.notificationsOn = notificationsOn;
    }


    public MessageThread(String partnerName, String partnerID, String threadID, Message lastMessage, boolean notificationsOn) {
        this.partnerName = partnerName;
        this.partnerID = partnerID;
        this.threadID = threadID;
        this.lastMessage = lastMessage;
        this.notificationsOn = notificationsOn;
    }

    public String getPartnerID() {
        return partnerID;
    }

    public void setPartnerID(String partnerID) {
        this.partnerID = partnerID;
    }

    public String getThreadID() {
        return threadID;
    }

    public void setThreadID(String threadID) {
        this.threadID = threadID;
    }

    public boolean areNotificationsOn() {
        return notificationsOn;
    }

    public void setNotificationsOn(boolean notificationsOn) {
        this.notificationsOn = notificationsOn;
    }

    public String getPartnerName() {
        return partnerName;
    }

    public void setPartnerName(String user1) {
        this.partnerName = user1;
    }


    public Message getLastMessage() {
        return lastMessage;
    }

    public void setLastMessage(Message lastMessage) {
        this.lastMessage = lastMessage;
    }

}

Когда для нового потока запускается обмен сообщениями, для логического значения notificationsOn устанавливается значение true, а объект потока создается с использованием второго (4 аргумента)constructor:

 private void getSetThreadDetails(final String convoID) {

        final DocumentReference threadReference = mFirestore.collection("users").document(mSignedInUserID).collection("threads").document(convoID);


        threadReference.get().addOnCompleteListener(new OnCompleteListener<DocumentSnapshot>() {
            @Override
            public void onComplete(@NonNull Task<DocumentSnapshot> task) {
                if (task.isSuccessful()) {
                    DocumentSnapshot snapshot = task.getResult();

                    if (!snapshot.exists()) {
                        notificationsOn = true;
                        Log.d(TAG,"notifications when thread details set: " +String.valueOf(notificationsOn));
                        MessageThread newMessageThread = new MessageThread(mPartnerName, mPartnerID, convoID, notificationsOn);
                        threadReference.set(newMessageThread);

                    }



                }
            }
        });


    }

Однако в Firebase сохраненный MessageThread не показывает запись для уведомлений, даже если он установлен в значение true прямо перед отправкой в ​​Firebase.Куда это денется?

1 Ответ

0 голосов
/ 21 ноября 2018

У вас есть установщик уведомлений, но у вас нет получателя.Firestore (в соответствии с соглашением JavaBean) должен найти метод по его правильному имени:

public boolean getNotificationsOn() {
    return this.notificationsOn;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...