我正在研究一种中等复杂度的前端应用程序.此时它是用纯JavaScript编写的,它有很多不同的基于事件的消息,连接了这个应用程序的几个主要部分.
我们决定显然我们需要在进一步重构的范围内为这个应用程序实现某种状态容器.以前我有一些使用redux和ngrx存储的经验(实际上遵循相同的原则).
Redux是我们的选择,但其中一个开发人员建议使用状态机,特别是xstate库.
我从来没有使用过这个东西,所以我发现它很有趣,并开始阅读文档并查看不同的例子.看起来很有前途和强大,但在某些时候我明白我没有看到它和redux之间的显着差异.
我花了好几个小时试图找到答案,或者与比较xstate和redux或者一些"利弊"相关的任何其他信息.不幸的是,我最终弄得一团糟.我没有找到任何明确的信息,除了像一些文章"从终极版以状态机得到",或指向集中于使用终极版和XSTATE库一起,并且终于突破了我.
如果有人可以描述差异或告诉我何时开发人员应该选择xstate - 欢迎你.
谢谢.
目前,我正在研究将复杂的 Web 应用程序从 AWS 迁移到 GCP 的可能性和正确方法。将通用计算和网络服务从一个提供商映射到另一个提供商实际上没有问题,但我想知道 GCP 是否有类似于AWS Step Functions 的服务?我已经看过 Google Dataflow和 Google Cloud Tasks。第二个似乎是这样的,但我不确定它是否是最佳解决方案。
所以问题是谷歌的哪些服务提供了与 AWS Step Functions 相同的功能?如果没有这样的 - 那么你会推荐哪些服务的组合来实现分布式任务(主要是云功能)的有效编排。谢谢!
amazon-web-services web google-cloud-platform aws-step-functions serverless
我目前面临这个问题,从 Google 访问任何指向 answers.unity.com 的链接往往会将我重定向到这个页面,上面写着“您的许可证已过期”。
我尝试过的事情:
我没有联系过状态描述中提到的 sales@answerhub.com。我认为这可能是一个技术问题,想知道是否有人遇到过同样的问题或解决了这个问题。提前致谢!
如何将文件转换为字节数组。
下面的另一种方式
let file = new File([myBlob], "name");
Run Code Online (Sandbox Code Playgroud)
文件需要转换成字节流
在我的项目中,我使用了一系列 GCP 服务,包括 Firestore、Cloud Functions 和 Firebase 身份验证。
鉴于用户能够通过 Firebase 身份验证服务登录,我认为应该可以检查和验证调用我的云功能的用户。问题是我找不到任何文档或如何执行此操作的示例。
我知道有一些特殊的可调用函数,但它不适合我。我正在使用 express 来处理请求。
是否可以从在客户端登录的用户(firebase auth)检索某种 JWT 令牌,然后将其与请求一起发送到我的云功能,然后在那里以某种方式检查它?或者有没有其他机制可以实现上述CF保护?
PS 我看到了这个问题,但这不是我在问什么,因为它与Firebase Functions相关,我说的是Cloud Functions,它非常相似但不完全相同。
我在这里看到了很多解决这个问题的问题,但是使用 apache 服务器,对于我的应用程序,我使用 AWS S3 和 Cloudfront,我需要应用程序在 URL 上没有丑陋的哈希的情况下工作。
有没有什么方法可以刷新或直接点击链接而不使用哈希?
如果需要代码的任何部分,我可以包含它,但我认为没有必要,因为没有任何失败,我只需要一个工作策略。
问候。
我的应用程序路由模块
@NgModule({
imports: [
RouterModule.forRoot(routes, { useHash: true })
],
exports: [
RouterModule
]
})
Run Code Online (Sandbox Code Playgroud)
删除散列 true 适用于导航,但不适用于页面刷新或直接链接
amazon-s3 amazon-web-services amazon-cloudfront single-page-application angular
这是我现在面临的 Firestore 安全规则问题。
首先,这里是我的 firestore 数据库中的数据结构示例:
userProfiles/userId/userData
companies/companyId/companyData
Run Code Online (Sandbox Code Playgroud)
看起来很简单。每个userData包含和命名的数组companies,其中包含该用户有权访问的所有 companyId。
现在我需要编写规则以仅当 companyId 是特定用户信息公司列表时才允许读取 companyData。
以下是该规则的工作对我来说:
service cloud.firestore {
match /databases/{database}/documents {
match /companies/{companyId} {
allow read: if companyId in get(/databases/$(database)/documents/userProfiles/$(request.auth.uid)).data.companies
}
}
}
Run Code Online (Sandbox Code Playgroud)
考虑到我将有更多规则,我想让它们更具可读性和重用性。根据这个官方指南,我可以创建自定义函数,根据这篇文章,它们可以是通用的,并且可以在主要规则块之外声明。
我重构我的规则是这样的,它也是工作对我来说:
service cloud.firestore {
match /databases/{database}/documents {
match /companies/{companyId} {
allow read: if companyId in getUserCompanies()
}
function getUserCompanies() {
return get(/databases/$(database)/documents/userProfiles/$(request.auth.uid)).data.companies
}
}
}
Run Code Online (Sandbox Code Playgroud)
但是现在我想将函数移到规则块之外以使其更加清晰:
service cloud.firestore {
match /databases/{database}/documents {
match /companies/{companyId} …Run Code Online (Sandbox Code Playgroud) 我使用下面的代码只是为了查看 USB 端口上连接的设备。当我在命令提示符下运行 'ng serve' 命令时,在编译时出现错误“类型导航器上不存在属性 USB”。
ngOnInit() {
async () => {
let devices = await navigator.usb.getDevices();
devices.forEach(device => {
// Add |device| to the UI.
console.log(device);
});
}
}
Run Code Online (Sandbox Code Playgroud) angular ×2
firebase ×2
javascript ×2
web ×2
amazon-s3 ×1
forum ×1
redux ×1
serverless ×1
typescript ×1
xstate ×1