小编Inz*_*lik的帖子

匿名JavaScript函数f => f究竟是什么?

我正在使用第三方库,它具有将函数作为参数的函数.我正在做一些条件检查来决定是否将特定函数添加为参数,在某些情况下我不想提供函数.在这种情况下提供null会引发错误.

我发现这个代码有效,但我不完全理解发生了什么.

compose(__DEV__ ? devTools() : f => f)
Run Code Online (Sandbox Code Playgroud)

f => f相当于() => {}一个空的匿名函数?

javascript lambda ecmascript-6

100
推荐指数
5
解决办法
2万
查看次数

如何在PC上本地测试Firebase的云功能

今天,Firebase发布了全新的Cloud Products for Firebase产品,我刚创建了一个hello world功能,并将其部署在我现有的firebase项目中.

看起来它捆绑所有依赖项并将其上传到firebase就像aws lambda函数一样.但即使在代码的微小变化上也需要太多时间才能完成,并且还需要良好的互联网连接.如果由于某种原因您处于脱机状态,那么在您可以在本地计算机上执行和测试该功能的方法之前,您所处的代码就处于黑暗状态.

有没有办法在本地测试Firebase的云功能?

function node.js firebase google-cloud-functions firebase-cloud-functions

33
推荐指数
3
解决办法
1万
查看次数

无法在多个文件中拆分Firebase功能

我正在使用firebase函数并且已经到达了数百个函数,现在很难在单个index.js文件中对其进行管理,如许多示例所示

我试图将这些函数拆分为多个文件,如:

--firebase.json
--functions
  --node_modules
  --index.js
  --package.json
  --app
    --groupFunctions.js
    --authFunctions.js
    --storageFunctions.js
Run Code Online (Sandbox Code Playgroud)

在这种结构中我把我的功能分为三类,并摆在那三个文件groupFunctions.js,authFunctions.jsstorageFunctions.js.然后我尝试导入这个文件index.js,但我不知道它为什么不适合我.

这是 groupFunctions.js

var functions = require('firebase-functions');
module.exports = function(){
    exports.onGroupCreate = functions.database.ref('/groups/{groupId}')
        .onWrite(event => {
            console.log(`A group is created in database named:${event.params.groupId}.`);
            // some logic...
            //...
        })
}
Run Code Online (Sandbox Code Playgroud)

这是index.js文件:

var functions = require('firebase-functions');
module.exports = require("./app/groupFunctions")();
Run Code Online (Sandbox Code Playgroud)

我的编辑没有在此代码中发出任何警告.但是当我部署此代码时firebase deploy --only functions,它不会部署功能.如果firebase控制台上已存在某些功能,则会删除部署中的所有功能.

这是部署日志: 在此输入图像描述

问题也在github上提出

javascript node.js firebase google-cloud-functions

14
推荐指数
2
解决办法
2812
查看次数

为每个项目执行npm安装会占用驱动器太多空间

有什么方法可以将npm install路由到硬盘的特定部分,当我执行npm安装时,在该部分驱动器中创建node_module文件夹,当我运行任何项目时,它会寻找该部分驱动器中的依赖项,就像单个每个项目的

然后,如果我有两个项目具有相似的依赖关系,那么我只需要npm install在一个项目中使用,这样依赖关系就可以在pool中使用,而无需npm install在另一个项目中进行npm start

谢谢Inzamam Malik

node.js npm

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

中断表示错误:跳转目标无法跨越函数边界。打字稿

当然我的逻辑要复杂得多,但这里有一个占位符代码,我试图停止递归调用,但break关键字说Jump target cannot cross function boundary .ts(1107)

let arr = [1, 2, 3, 4, 5, 6, 7, 8];

async function recCall(input: number[]) {

    if (input.length) {
        let eachItem = input.pop();

        // my logic includes http call with await

        recCall(input); // next iter
    }else{
        break; // says error 
    }
};
Run Code Online (Sandbox Code Playgroud)

这不是普通的 javascript 而是打字稿,我的打字稿版本是:

tsc -v Version 3.7.5

我无法理解这个错误是什么意思以及为什么会发生,我在互联网上搜索但没有找到任何原因,过去几年我一直在使用break来打破循环,现在它显然开始不起作用并说错误我不明白任何帮助都会得到帮助。

javascript recursion break typescript

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

无法使用无服务器框架发送 xml 响应

我正在使用 twilio,其中当呼叫到达我的 twilio 号码时,它会调用 webhook,我使用 lambda 函数作为 webhook,

twilio 期望来自 webhook 的 xml(以前称为 twiml)响应,但我无法从 lambda 函数发送 xml 响应

我正在使用无服务器框架

这是我的代码 功能:

module.exports.voice = (event, context, callback) => {

  console.log("event", JSON.stringify(event))
  var twiml = new VoiceResponse();

  twiml.say({ voice: 'alice' }, 'Hello, What type of podcast would you like to listen? ');
  twiml.say({ voice: 'alice' }, 'Please record your response after the beep. Press any key to finish.');

  twiml.record({
    transcribe: true,
    transcribeCallback: '/voice/transcribe',
    maxLength: 10
  });

  console.log("xml: ", twiml.toString())

  context.succeed({
    body: twiml.toString() …
Run Code Online (Sandbox Code Playgroud)

twilio aws-lambda aws-api-gateway serverless-framework twilio-twiml

5
推荐指数
2
解决办法
2178
查看次数

我如何取消订阅 onAuthStateChanged

以前我在浪费时间,firebase.auth.currentUsernull在应用程序加载时给了我,而我在应用程序加载时需要 auth 用户权限(或者回调也适用于我)。然后我决定使用onAuthStateChanged但现在我无法取消订阅它并且它一次又一次地发射,我只希望它给我suth并立即永远销毁

那么,我如何取消订阅这个东西:

firebase.auth().onAuthStateChanged(function(user) {
   if (user) {
       // User is signed in.
   }
});
Run Code Online (Sandbox Code Playgroud)

javascript firebase firebase-authentication

4
推荐指数
1
解决办法
6970
查看次数

Firebase多路径获取数据

目前,Firebase支持平面数据布局的多路径数据更新.但是,在获取数据时,是否可以使用类似的方法从Firebase中的多个位置获取多路径数据?

例如,我需要将一些数据连接在一起,我的当前代码如下所示:

ref.child('data_1/').once('value', function (snapshot) {
    var test_string_1 = snapshot.val();

    ref.child('data_2/').once('value', function (snapshot) {
        var test_string_2 = snapshot.val();

        //...etc 
    });
});
Run Code Online (Sandbox Code Playgroud)

当必须从多个节点获取数据时,这种嵌套方法非常深入.所以我想知道是否有更好更快的方法,如多路径提取,从多个位置获取数据.

javascript firebase firebase-realtime-database

3
推荐指数
1
解决办法
372
查看次数

在记录动作中变空身体 - twilio

我的用例:

我的情况是我正在制作一个用于收听播客的机器人,用户将在其中拨打 twilio 号码,机器人会询问您想收听哪种类型的播客,然后录制 10 秒钟

录制完成后,它说用户请稍等,我们正在寻找播客

我希望在我的 webhook 中进行录音,以便我了解来电者的心情并从我的数据库中找到合适的播客 mp3 文件并播放给来电者

我面临的问题:

我所有的 webhooks 都空了

我的代码:

var express = require("express");
var bodyParser = require("body-parser");
var VoiceResponse = require('twilio').twiml.VoiceResponse;

var app = express();
var port = (process.env.PORT || 4000);

app.use(bodyParser.json())

// helper to append a new "Say" verb with alice voice
function say(text, twimlRef) {
    twimlRef.say({ voice: 'alice' }, text);
}
// respond with the current TwiML content
function respond(responseRef, twimlRef) {
    responseRef.type('text/xml');
    responseRef.send(twimlRef.toString());
}

app.post("/voice", function (request, response, next) …
Run Code Online (Sandbox Code Playgroud)

javascript node.js twilio express plivo

3
推荐指数
1
解决办法
999
查看次数

如何在webhook上获取会话ID

我正在为Google Home和Android移动助手制作助手应用

我在webhook 使用Google Action上的Google图书馆,这是推荐且方便的方法

在我的特定情况下,我想从webhook中创建userEntity,这需要会话ID,但是我无法在webhook上获取sessionid

根据api.ai文档,它将Json发送到webhook像这样:

{
    "lang": "en", 
    "status": {
        "errorType": "success", 
        "code": 200
    }, 
    "timestamp": "2017-02-09T16:06:01.908Z", 
    "sessionId": "1486656220806"              <<<<<<<<======here is session id
    "result": {
        "parameters": {
            "city": "Rome", 
            "name": "Ana"
        }, 
        "contexts": [], 
        "resolvedQuery": "my name is Ana and I live in Rome", 
        "source": "agent", 
        "score": 1.0, 
        "speech": "", 
        "fulfillment": {
            "messages": [
                {
                    "speech": "Hi Ana! Nice to meet you!", 
                    "type": 0
                }
            ], 
            "speech": "Hi Ana! Nice …
Run Code Online (Sandbox Code Playgroud)

session bots actions-on-google api-ai

3
推荐指数
1
解决办法
2494
查看次数

无法在 firebase 存储桶中创建文件夹 - firebase admin

就我而言,我有一个 Url 列表,我想从这些 url 下载每个文件并将其组织在 firebase 存储桶中,我的问题是我无法通过 nodejs javascript/typescript 在 firebase 存储桶中创建文件夹。

好吧,firebase storage 提供了 ref() 和 child 方法来上传子文件夹中的文件(请参阅this)但firebase只为firebase客户端库提供这些方法,并不是我们不能在nodejs中使用客户端库,而是他们隐藏了一些命名空间当您在 nodejs 中连接 firebase 客户端库并且存储是其中之一时(请参阅)。

我很高兴他们分别考虑了前端和后端,因为前端和后端在安全性和用例方面有完全不同的场景,所以他们真正编写在 nodejs 中使用的是 firebase admin,我看不到 ref 和 child 方法在他们所说的官方文档中,不是命名我正在上传的文件的任何其他方法,也不是任何使文件夹进入子目录的方法,当我从计算机上传文件时,它会以相同的名称保存在存储桶根目录中作为文件名,它在我的电脑中,即使我可以手动从 firebase 控制台创建文件夹,但它不能满足我的要求,肯定应该有任何方式以编程方式创建文件夹。

我也尝试使用 google 云存储库,const {Storage} = require('@google-cloud/storage'); 但结果证明 firebase admin 和 gogole 云库共享相同的文档,并且至少在上传文件部分具有相同的界面。

好吧,我花了一整天的时间(因为是凌晨 4 点 46 分,所以晚上也是如此)尝试不同的库并深入研究他们的文档,我也发现这些文档几乎没有组织和缺乏代码示例。

任何帮助将不胜感激,到目前为止我的代码片段来自他们的文档并正确上传文件:

import "firebase/firestore"

admin.initializeApp({
    credential: admin.credential.cert("./../path-to-service account-cert.json"),
    databaseURL: 'gs://bilal-assistant-xxxxx.appspot.com'
});
const quran_bucket = admin.storage().bucket("quran-bucket");

quran_bucket.upload("./my_computer_path/fatiha.mp3", {
    gzip: true,
    metadata: {
        cacheControl: 'public, …
Run Code Online (Sandbox Code Playgroud)

node.js google-cloud-storage firebase firebase-storage firebase-admin

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

为什么 javascript 语音识别 api 在没有互联网的情况下无法工作?

我正在使用 javascript 语音识别 api( new webkitSpeechRecognition()),我很惊讶为什么它在没有互联网的情况下无法工作,因为它是 javascript 代码,所以它应该离线工作

我检查了chrome开发者工具的网络部分,它甚至没有向互联网发出请求

javascript speech-recognition google-chrome node.js

-1
推荐指数
1
解决办法
2930
查看次数

微控制器(esp32)使用x86还是arm,我可以在这些MCU中安装Linux

我正在进入微控制器,所以我想知道像esp32和esp8266这样的微控制器和其他同类产品是基于x86还是arm架构?我尝试在互联网上搜索,但没有得到足够的线索

如果它使用这两种架构中的任何一种,是否有机会在这些控制器中安装Linux,我想到了这一点,因为freeRTOS说它是微控制器的操作系统,我认为它不是

但不知何故,如果它是一个操作系统,那么像Linux这样的其他操作系统呢,他们今天有机会安装在MCU中吗?或者甚至在未来五年内他们有机会吗?

microcontroller x86 operating-system arm xtensa

-1
推荐指数
1
解决办法
220
查看次数