Использование Google Assistant для изменения значения базы данных Firebase

Я создал приложение для Android, в котором, если нажать кнопку и изменить значение в базе данных Firebase (0/1), я хочу сделать это с помощью помощника Google, пожалуйста, помогите мне, я искал, но не нашел подходящего руководства, пожалуйста выручи меня




Ответы (3)


Код для этого довольно прост - для выполнения вашего веб-перехватчика вам понадобится объект базы данных Firebase, который я называю fbdb ниже. В обработчике Intent вы получите ссылку на место, которое хотите изменить, и внесете изменения.

В Javascript это может выглядеть примерно так:

app.intent('value.update', conv => {
  var newValue = conv.prameters.value;
  var ref = fbdb.ref('path/to/value');
  return ref.set(newValue)
    .then(result => {
      return conv.ask(`Ok, I've set it to ${newValue}, what do you want to do now?`);
    })
    .catch(err => {
      console.error( err );
      return conv.close('I had a problem with the database. Try again later.');
    });
  return 
});

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

person Prisoner    schedule 09.06.2018

На самом деле я работаю над проектом с использованием веб-перехватчика Dialogflow и интегрированной базы данных Firebase. Чтобы сделать это возможным, вы должны использовать выполнение в формате JSON (вы не можете вызывать базу данных firebased таким образом, как вы это делаете)

Вот пример вызова базы данных firebase и отображения простого текста в функции. Сначала вы должны взять переменную из json .. это что-то вроде этого (в моем случае это зависит от вашего имени сущности, в моем случае это была «тема»)

var concepto = request.body.queryResult.parameters.tema;

а затем в вашей функции:

    'Sample': () => {
 db.child(variable).child("DESCRIP").once('value', snap => {
 var descript = snap.val(); //firebasedata
          let responseToUser = {
              "fulfillmentMessages": [
                  { //RESPONSE FOR WEB PLATFORM===================================
                      'platform': 'PLATFORM_UNSPECIFIED',
                      "text": {
                          "text": [
                              "Esta es una respuesta por escritura de PLATFORM_UNSPECIFIED" + descript;
                          ]
                      },
                  }
              ]
          }
          sendResponse(responseToUser); // Send simple response to user
 });
      },

это ссылки для форматирования вашего json: Paraformatear JSON:

A) https://cloud.google.com/dialogflow-enterprise/docs/reference/rest/Shared.Types/Platform

Б) https://cloud.google.com/dialogflow-enterprise/docs/reference/rest/Shared.Types/Message#Text

И вот, наконец, образец, который очень помог !! https://www.youtube.com/watch?v=FuKPQJoHJ_g

Хороший день!

person Alex Trujillo    schedule 13.06.2018

после поиска я нахожу руководство что может в этом помочь:

  • нам нужно сначала создать чат-бота в dialogflow / api.pi
  • Затем нужно обучить нашего бота и использовать в ответ webhook в качестве фулфилла.
  • Теперь нам нужно настроить firebase-tools для отправки ответа и внесения изменений в базу данных firebase.
  • Наконец, нам нужно интегрировать диалог с помощником Google с помощью google-действий.

Вот мой пример кода, который я использовал:

`var admin = require('firebase-admin');
const functions = require('firebase-functions');
admin.initializeApp(functions.config().firebase);
var database = admin.database();
// // Create and Deploy Your First Cloud Functions
// // https://firebase.google.com/docs/functions/write-firebase-functions
//
exports.hello = functions.https.onRequest((request, response) => {
let params = request.body.result.parameters;
database.ref().set(params);
response.send({
speech: "Light controlled successfully"
});
});`
person kavin    schedule 10.08.2018