小编sol*_*ous的帖子

慢速 firestore runTransaction 调用

我目前正在编写一个操作,作为其中的一部分,检查并递增 orderID 值并在对话中对其进行响应。

该代码目前可以工作,但部分执行可能需要长达 10 秒的时间才能执行,这可能会使 action-on-google 请求超时并失败(并且回复用户的速度很慢(如果有的话))。我使用 arunTransaction来确保 firebase 上没有其他函数实例也可以增加 ID。所有函数和值的代码都会增加,但函数响应的延迟意味着它响应的意图超时并给出回退响应。

正如您在下面的代码中看到的,我添加了各种console.log' 来跟踪延迟,在输出before transactiontransaction started控制台之间发生 8-10 秒的延迟。谁能说出为什么吗?

const functions = require('firebase-functions');
const { dialogflow, Suggestions } = require('actions-on-google');
const admin = require('firebase-admin');

admin.initializeApp(functions.config().firebase);
const db = admin.firestore();
const settings = {timestampsInSnapshots: true};
db.settings(settings);

const app = dialogflow();

app.intent('order', (conv, {givenname: givenname}) => {
  console.log('starting function');
  return new Promise(function(resolvei, rejecti){
    if(givenname !== undefined){

        console.log('before db.collection');

        var idRef = db.collection('orderIDs').doc('opho9peCy54tjLR0YmVm');
        console.log('before transaction');
        var …
Run Code Online (Sandbox Code Playgroud)

firebase google-cloud-functions actions-on-google google-cloud-firestore

6
推荐指数
1
解决办法
1081
查看次数

在 dialogflow-fulfillment 中访问先前的跟进意图参数

我正在使用内联编辑器中提供的默认 dialogflow 代码,基于 dialogflow-fulfillment ^0.5.0 来整理通过几个后续意图给出的所有参数。我有一个设置,其中后续意图提出问题,从而产生一个包含所有问题的最终意图。

从对话流控制台内的先前意图中提取数据以包含在响应中只会使用 ie#order-cream-followup.chocolate-type从先前意图$quantity获取参数或从当前意图获取参数。但是,虽然agent.parameters['quantity']像 一样工作$quantity,但我找不到#order-cream-followup.chocolate-type在 dialogflow-fulfillment 中执行等效操作的方法

抱歉,如果这是一个明显的答案,我会在各种不同的文档中迷失方向,这些文档通常在 google 上进行对话和操作。

我的代码:(目前只是在添加代码来处理推送数据之前登录到控制台)

// See https://github.com/dialogflow/dialogflow-fulfillment-nodejs
// for Dialogflow fulfillment library docs, samples, and to report issues
'use strict';

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

process.env.DEBUG = 'dialogflow:debug'; // enables lib debugging statements

exports.dialogflowFirebaseFulfillment = functions.https.onRequest((request, response) => {
  const agent = new WebhookClient({ request, response });
  console.log('Dialogflow Request headers: ' …
Run Code Online (Sandbox Code Playgroud)

dialogflow-es

5
推荐指数
1
解决办法
3740
查看次数

Kotlin 数组中的所有项始终包含最后一项

我正在尝试使用原始文件夹中的文件填充数组。然后我在该数组中随机选择一个插槽并使用它来播放该文件。

但是当我这样做时,每个插槽似乎都包含阵列中的最终视频。我不确定这是什么原因...

    var videos = Array(5){R.raw.c0; R.raw.c1; R.raw.c2; R.raw.c3; R.raw.c4};

    videoView.setVideoPath("android.resource://" + getPackageName() + "/" + videos[Random.nextInt(0, 4)])
    videoView.requestFocus()
    videoView.start()
Run Code Online (Sandbox Code Playgroud)

arrays android kotlin android-videoview

2
推荐指数
1
解决办法
91
查看次数