Почему облачная функция Google {node.js} считывает только одно значение из базы данных Firebase в реальном времени? - PullRequest
0 голосов
/ 02 июля 2019

Я пытаюсь отправить устройство на устройство push-уведомлением через FCM с помощью функции bt, когда я отправляю уведомление через устройство, оно получит только одно значение из БД в реальном времени. здесь это первое значение 'sem'

                final String sem = record;
                DatabaseReference anewfeed = ndatabase.push();
                anewfeed.child("sem").setValue(sem);
                anewfeed.child("body").setValue(desc)
                .addOnSuccessListener(new OnSuccessListener<Void>() {
                        @Override
                        public void onSuccess(Void aVoid) {
                            progressDialog.dismiss();
                          //  Toast.makeText(addnotice.this, desc , Toast.LENGTH_LONG).show();
                            Toast.makeText(addnotice.this, "Notice Sended Successfully" , Toast.LENGTH_LONG).show();
                            finish();
                        }
                    })
                    .addOnFailureListener(new OnFailureListener() {
                        @Override
                        public void onFailure(@NonNull Exception e) {
                            progressDialog.dismiss();
                            Toast.makeText(addnotice.this, "Error occurred " , Toast.LENGTH_LONG).show();
                        }
                    });

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

const functions = require('firebase-functions');
const admin =require('firebase-admin');
admin.initializeApp(functions.config().firebase);
exports.sendNotice=functions.database.ref('/notice/{u_id}').onCreate((change, context) => {
var notice = change.val();
var topic = notice.sem;
var bd=  notice.body;
console.log('sem is:', topic);
console.log('notification is:',bd);
var message = {
  notification: {
    title: ('Notice for '+topic+' sem'),
    body: bd
  },
    topic: topic
  };
admin.messaging().send(message);

  } );

в консоли показывает, что тело: undefine

...