我正在编写一些 Firebase 函数。开箱即用,它附带了带有 eslint-plugin-promise 的 EsLint(这很棒)。看来 eslint-plugin-promise 也带来了更漂亮的功能。我不习惯 prettier,但我在 .prettierrc 文件中配置了一些我喜欢的东西,但我无法弄清楚这个 Promise 链问题。
我正在将 Promise 调用链接到新线路上,但 Prettier 迫使我将它们放在一行上。
我的代码:
module.exports = functions.firestore
.document('thing/{thingId}')
.onCreate((snap, context) => {
// stuff
});
Run Code Online (Sandbox Code Playgroud)
Prettier 正在重新格式化为:
module.exports = functions.firestore.document('thing/{thingId}').onCreate((snap, context) => {
// stuff
}
Run Code Online (Sandbox Code Playgroud)
我认为 Prettier 的版本更糟糕。它更难阅读,也更难区分。
知道如何关闭它吗?我现在刚刚禁用了 Prettier,我不喜欢它,因为我喜欢 Prettier 的大部分功能。
我需要从用户输入的名称生成文件名.这些名称可以是任何语言.例如:
这些都是使用输入的值,所以我不能保证名称不包含文件名无效的字符.
用户将从他们的浏览器下载这些文件,因此我需要确保文件名在所有配置的所有操作系统上都有效.
我目前正在为英语国家做这个,只需用一个简单的正则表达式删除所有非字母数字字符:
string = string.replaceAll("[^a-zA-Z0-9]", "");
string = string.replaceAll("\\s+", "_")
Run Code Online (Sandbox Code Playgroud)
一些示例转换:
显然这在国际上不起作用.
我已经考虑过查找/生成所有文件系统中无效的所有字符的黑名单,并从名称中删除这些字符.我一直无法找到一份全面的清单.
如果可能的话,我更愿意在公共库中使用现有代码.我想这是一个已经解决的问题,但我无法找到一个国际化的解决方案.
文件名是供用户下载文件的,不适合我.我不打算存储这些文件.这些文件由服务器根据数据库中的数据请求动态生成.文件名是为了方便下载文件的人.
我正在开发一个应用程序,作为客户服务的一部分,我需要在该应用程序中帮助用户完成某些任务。与其构建单独的管理界面,我更希望能够模拟用户为他们使用该应用程序。
这是 Firebase 可以做的事情吗?
我已经看到其他堆栈溢出答案,使用 Firebase 重写将 /api/** 路由到其 Express 应用程序功能。
我正在遵循这些说明,但也尝试托管单页应用程序。
将两者结合起来似乎不起作用,因为 API 路由仍然映射到我的 index.html 文件。
这些是我的重写
"rewrites": [
{
"source": "/api/**",
"function": "api"
},
{
"source": "**",
"destination": "/index.html"
}
]
Run Code Online (Sandbox Code Playgroud)
这可能吗?
我目前通过给它一个服务器URI列表来配置Jest.像这样:
public JestClient jestClient() {
final JestClientFactory factory = new JestClientFactory();
factory.setHttpClientConfig(new HttpClientConfig
.Builder(esServerUris)
.build());
final JestClient jestClient = factory.getObject();
return jestClient;
}
Run Code Online (Sandbox Code Playgroud)
如果我的一个ElasticSearch服务器脱机(例如故障或维护),那么我的Jest查询的百分比将失败.Jest默认情况下似乎没有进行任何类型的智能连接管理.它必须通过服务器进行循环或随机选择服务器.
有没有更好的方法来处理这个?