小编man*_*dos的帖子

如何在angular-cli中为长路径制作"别名"?

我正在使用Angular CLI.如何转换路径:

import {AppConfig, AppConfigInterface} from '../../../app.config';
Run Code Online (Sandbox Code Playgroud)

类似于:

import {AppConfig, AppConfigInterface} from 'root/app.config';
Run Code Online (Sandbox Code Playgroud)

angular-cli angular

10
推荐指数
3
解决办法
9549
查看次数

仅在Firebase Firestore中不存在时才创建文档

我想要实现的是非常简单的.我只需要在数据库中创建一个用户条目就不需要了.

应用程序流程:

  1. 使用Firebase Auth创建用户(获取UID)
  2. 使用UID作为密钥在数据库中创建用户文档

客户端代码(创建操作):

this.db.doc('users/' + uid).set({username: Santa})
Run Code Online (Sandbox Code Playgroud)

火库规则:

service cloud.firestore {
  match /databases/{database}/documents {
    match /users/{uid} {
      allow create: if 
        request.auth != null && 
        request.auth.uid == uid && 
        !exists(/databases/$(database)/documents/users/$(uid));
      allow update: if request.auth != null && request.auth.uid == uid; 
    }
  }
} 
Run Code Online (Sandbox Code Playgroud)

附加信息:

您可能已经知道代码不起作用.每次运行客户端代码时,当前用户都会被新文档完全替换.但是,如果我从规则中删除以下行,一切都按预期工作:

allow update: if request.auth != null && request.auth.uid == uid;

但现在问题出现了,我如何保护用户文档中的数据免受未经授权的修改?有什么建议?

google-cloud-firestore

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

如何导出函数类型?

这是我导出和导入对象的typescript接口的方法.一切正常.将此作为我正在努力实现的目标的一个例子,但具有功能.

第1单元

export interface MyInterface {
  property: string;
}
Run Code Online (Sandbox Code Playgroud)

第2单元

import {MyInterface} from './module1';

const object: MyInterface = {
    property: 'some value'
};
Run Code Online (Sandbox Code Playgroud)

下面的代码给出了一个错误"TS2304:找不到名字'myFunction'".如何导出和导入函数类型?

第1单元

export let myFunction: (argument: string) => void;
Run Code Online (Sandbox Code Playgroud)

第2单元

import {myFunction} from './module1';

let someFunction: myFunction; 
Run Code Online (Sandbox Code Playgroud)

typescript

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

如何检测变量的变化?

我有一个全局范围的变量,我需要定期检查更改.这就是我在简单JS中的方法:

    let currentValue, oldValue;

    setInterval(()=>{
       if(currentValue != oldValue){
          doSomething();
       }
    }, 1000)
Run Code Online (Sandbox Code Playgroud)

它是如何使用的Observables

rxjs rxjs5

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

Firestore模拟器中的“空值错误”

我正在尝试从Firestore官方文档中复制一个示例。您需要了解的所有信息都在屏幕截图上。是错误还是我错过了什么?

在此处输入图片说明

firebase google-cloud-firestore

6
推荐指数
3
解决办法
2391
查看次数

设置方法未被调用

我使用(typescript、babel、linter)创建了一个入门项目vue ui。一切工作正常,但我不太明白如何使Composition APIsetup方法工作。它根本没有被调用(日志输出为空)这就是我被困住的地方。

  • vue:3.0.0-rc.10

  • vue-cli:4.5.4

    <script lang="ts">
     import { Options, Vue } from 'vue-class-component'
     import HelloWorld from './components/HelloWorld.vue'
    
     @Options({
       components: {
         HelloWorld
       },
       setup () {
         console.log('SETUP HERE')
       }
     })
     export default class App extends Vue {
       setup () {
         console.log('SETUP THERE')
       }
     }
     </script>
    
    Run Code Online (Sandbox Code Playgroud)

typescript vue.js vuejs3 vue-composition-api vue-script-setup

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

将 Angular CLI 构建日志保存到文件

我在这里检查,没有可以传递给 Angular CLI 以将日志保存到文件的选项。我试过这个:

ng build |& tee output.txt
Run Code Online (Sandbox Code Playgroud)

问题是生成的文件使我的 Atom 编辑器崩溃,并且在 Geany 中它不可读,因为像 [BS]、[ESC] 这样的字符(它们的删除弄乱了格式并且文件仍然不可读)。

各位大侠,能分享一下你们的技巧吗?

angular2-cli angular

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

按标签搜索效率如何?

情况:

我有100万用户,我想通过标签搜索它们.

这是架构:

const Account = new Schema({
  tags: { type: [String], default: ['cats'] }
})
Run Code Online (Sandbox Code Playgroud)

这是第一个查询:

const query = { tags: 'cats'}
const fields = { _id: 0 }
const options = { skip: 0, limit: 5 }

Account.find(query, fields, options)
Run Code Online (Sandbox Code Playgroud)

调用find方法后,Mongoose将开始搜索并返回它匹配的前5个条目.在这种情况下的表现是最佳的.

这是第二个查询:

const query = { tags: 'cats'}
const fields = { _id: 0 }
const options = { skip: 500 000, limit: 5 }

Account.find(query, fields, options)
Run Code Online (Sandbox Code Playgroud)

在这种情况下发生的事情是我感兴趣的.

Mongoose首先匹配500个000项,然后返回未来5项?

或者它是否以某种方式"跳"到500 000元素而不必事先将它们全部匹配? …

mongoose

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

如何在错误堆栈输出中替换“webpack-internal”?

我正在尝试弄清楚如何正确进行错误记录。我正在使用 Vue 框架(webpack starter)。

当我console.log(error.stack)进入浏览器开发控制台时:

Error: offline
    at Socket.eval (socket.service.js?19d1:20)
    at Socket.onack (socket.js?0183:311)
    ...
Run Code Online (Sandbox Code Playgroud)

当我这样做sendErrorStackToServer(error.stack)someDiv.innerText = error.stack我得到:

Error: offline
    at Socket.eval (webpack-internal:///92:48:83)
    at Socket.onack (webpack-internal:///101:311:9)
    ...
Run Code Online (Sandbox Code Playgroud)

如何用更具描述性的内容(如第一种情况)替换webpack-internal

javascript logging webpack vue.js

5
推荐指数
0
解决办法
817
查看次数

对称 NAT 的优势是什么(就 ISP 而言)?

在尝试通过 WebRTC 连接两台机器后,我了解到其中一台机器位于对称 NAT 后面(这是Philipp Hancke 撰写的一篇关于它的很棒的文章)。这台机器并不总是位于对称 NAT 后面。几个月前我可以毫无问题地连接到它(仅使用 STUN 服务器)。那台机器上的硬件和软件从那时起就没有改变,所以我认为 ISP 一定做了什么。

我的问题是:

  1. 使用对称 NATS 的优势是什么?
  2. 由于使用 TURN 服务器很昂贵,启用对称 NAT 可以被视为对点对点连接的打击,因为它会阻止开发人员使用 WebRTC 技术。

你怎么认为?

p2p nat webrtc

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