Как изменить ключ данных из foreach () firebase на отдельные данные в диалоговом потоке - PullRequest
0 голосов
/ 29 марта 2019

Мне удалось получить ключ данных в диалоговом потоке с этим кодом

    var db = admin.database();
    var ref = db.ref('produk');

    return ref.once("value")
      .then( snapshot => {
        snapshot.forEach(function(data) {
         var keys = data.key;
         agent.add(keys);
     });
    })
    .catch( err => {
        agent.add('wah, ada error nih');
        console.error( err );
    });

результат выглядит так:

{
  "responseId": "ccc7b5d6-555d-4e6d-be07-a0c58562a032",
  "queryResult": {
    "queryText": "daftar produk",
    "parameters": {},
    "allRequiredParamsPresent": true,
    "fulfillmentMessages": [
      {
        "text": {
          "text": [
            "colis cake soap"
          ]
        }
      },
      {
        "text": {
          "text": [
            "colis jelly mask"
          ]
        }
      },
      {
        "text": {
          "text": [
            "colis sakura collagen"
          ]
        }
      },
      {
        "text": {
          "text": [
            "colis white glow"
          ]
        }
      },
      {
        "text": {
          "text": [
            "colus men collagen"
          ]
        }
      },
      {
        "text": {
          "text": [
            "crestine"
          ]
        }
      },
      {
        "text": {
          "text": [
            "jamug"
          ]
        }
      },
      {
        "text": {
          "text": [
            "vidari"
          ]
        }
      }
    ],
    "intent": {
      "name": "projects/ouzenmartfaq/agent/intents/48647c93-17a3-4f21-98e4-47da23bb8907",
      "displayName": "Daftar Produk"
    },
    "intentDetectionConfidence": 1,
    "diagnosticInfo": {
      "webhook_latency_ms": 162
    },
    "languageCode": "id"
  },
  "webhookStatus": {
    "message": "Webhook execution successful"
  }
}

это работа с Google Assistant и в попытке агента, потому что Google Assistant поддерживает расширенное сообщение "executeMessages". Но он не поддерживает Android-версию или демонстрационную веб-интеграцию.

Я пытаюсь изменить функцию, используя response.json, а не agent.add, как этот код

    var db = admin.database();
    var ref = db.ref('produk');

    return ref.once("value")
      .then( snapshot => {
        snapshot.forEach(function(data) {
         var keys = data.key;
         response.json ({
           "fulfillmentText" : `${keys}`;
         });
     });
    })
    .catch( err => {
        console.error( err );
    });

но ключи, показывающие только 1 данные, вы можете увидеть на этом ответе json

{
  "fulfillmentText": "colis cake soap",
  "outputContexts": []
}
  1. это скриншот попытки агента ответ на тренировку

  2. это скриншот веб-демо веб-демонстрационный ответ

Что я хотел, так это вывести в ответе:

{
  "fulfillmentText": "colis cake soap, colis jelly mask, colis sakura collagen, colis white glow, colus men collagen, crestine, jamug, vidari",
  "outputContexts": []
}

Надеюсь, вы сможете мне помочь! спасибо

...