Получить значение child, возвращающее нулевую облачную функцию, базу данных в реальном времени - PullRequest
0 голосов
/ 09 октября 2018

Я хочу получить ключ этого потомка, но он возвращает нуль и как сохранить {users_uid} в const или переменную?Я не знаю, что здесь не так.

const uid_tugas = admin.database().ref('/user_course/{users_uid}/' + course_id);
             if (uid_tugas != null){
                uid_tugas.once('value').then(snap6 =>{
                    const uid_tugas_val = snap6.val();
                    console.log(`value uidnya`+ uid_tugas_val.course_id);

                }).catch(error =>{
                    console.log(error);
                })
             }
             else{
                console.log(`tidak ada`);
             }

структура базы данных enter image description here

Это мой полный код функции

export const onNotifTugas = functions.database.ref('/tugas_course/{course_id}/{tugas_id}')
.onCreate((snapshot, context) =>{


    const course_id = context.params.course_id;
    const tugas_id = context.params.tugas_id;

    const authVar = context.auth;
    const timestamp = context.timestamp;
    const messageID = context.params.messageID;
    console.log(`MID ${messageID} in ${timestamp}`);


    return admin.database().ref('/tugas/' + tugas_id +'/').once('value').then(snap => {
            const tugasData = snap.val();
            const notifDataSend = { // buat structure data json dgn nama const notifDataSend untul cloud messaging
                data: {
                            data_type: "tugas",
                            title: "Anda mendapatkan notifikasi baru..", // data bebas (key, value)
                            body: `Tugas ${tugasData.nama_tugas} baru`, // chatId = const chatId
                            sound: "default"
                      }
             };

             const uid_tugas = admin.database().ref('/user_course/{users_uid}/' + course_id);
             if (uid_tugas != null){
                uid_tugas.once('value').then(snap6 =>{
                    const uid_tugas_val = snap6.val();
                    console.log(`value uidnya`+ uid_tugas_val.course_id);

                }).catch(error =>{
                    console.log(error);
                })
             }
             else{
                console.log(`tidak ada`);
             }




            return admin.messaging().sendToTopic(course_id, notifDataSend) 
            .then(function(response) {
                console.log("Successfully sent message:", response);
              })
            .catch(function(error) {
                console.log("Error sending message:", error);
              });

    }).catch(error => {
        console.log(error);
    })

1 Ответ

0 голосов
/ 09 октября 2018

Предполагая, что authVar является вашей ссылкой для аутентификации, ваш uid будет authVar.uid.Затем вы можете написать свое uid_tugas назначение следующим образом:

const users_uid = authVar.uid;    
const uid_tugas = admin.database().ref('/user_course/' + users_uid + '/' + course_id)

Вы можете ознакомиться с документацией здесь .

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