Как получить несколько данных, используя определенное поле в базе данных Firebase

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

Я попробовал документацию firebase. Мое подключение к базе данных было успешным, но я не могу получить данные, а также хочу попросить пользователя ввести идентификатор студента, т.е. регистрационный номер. Предположим, если я введу 191611238 [RegId], он получит поля FirstName, EmailId и year.

* Это мой код выполнения Dialogflow *

const functions = require('firebase-functions');
const { WebhookClient} = require('dialogflow-fulfillment');


// initialise DB connection
const admin = require('firebase-admin');
admin.initializeApp({
    credential: admin.credential.applicationDefault(),
    databaseURL: 'ws://******.firebaseio.com/'
});

process.env.DEBUG = 'dialogflow:debug';

exports.dialogflowFirebaseFulfillment =
    functions.https.onRequest((request, response) => {

        const agent = new WebhookClient({
            request,
            response
        });
        console.log('Dialogflow Request headers: ' + JSON.stringify(request.headers));
        console.log('Dialogflow Request body: ' + JSON.stringify(request.body));

        function getRegId(agent) {
            const RegId = agent.parameters.RegId;

            agent.add(`Thank you...`);


            return
            admin.database().ref('Table/').orderByChild('/RegId').equalTo("$RegId").once("value").then((snapshot) => {

                var Email = snapshot.child("EmailId").val();
                agent.add(`The student Mail is ` + Email);
                var Regno = snapshot.child("RegId").val();
                agent.add(`The student Register no is ` + Regno);
                var name = snapshot.child("FirstName").val();
                agent.add(`The student name is ` + name);
                var year = snapshot.child("CourseName").val();
                agent.add(`The student currently studying ` + year);
                var Gradu = snapshot.child("GraduationTypeName").val();
                agent.add(`The student Department is ` + Gradu);

            });
        }

        // Run the proper function handler based on the matched Dialogflow 
        intent name
        let intentMap = new Map();
        intentMap.set('GetthedetailsofRegisternumber', getRegId);
        agent.handleRequest(intentMap);
    });

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

Регистрационный номер студента равен нулю и т. д. Я получил ошибку в консоли Firebase, поскольку

dialogflowFirebaseFulfillment ПРЕДУПРЕЖДЕНИЕ FIREBASE: использование неуказанного индекса. Рассмотрите возможность добавления «.indexOn»: «RegId» в /Table к вашим правилам безопасности для повышения производительности.

Пожалуйста, предоставьте мне, как попросить пользователя ввести RegId на основе того, что я хочу получить все поля.

Это структура моей базы данных


person chinna 98    schedule 23.08.2019    source источник


Ответы (1)


person    schedule
comment
Этот код работает нормально. Получил помощь от команды Firebase. - person chinna 98; 26.08.2019