有什么区别
jasmine.createSpy( '的someMethod')
和
spyOn(someObject,'someMethod')
为什么要选择使用spyOn?
我的猜测是,第一个替代方法将匹配方法someMethod,无论它包含在哪个对象中,但spyOn只会匹配someObject中包含的对象.这样makeSpy只是一个更通用的匹配器?
我正在Firestore中实现一个食谱书,其中每个用户都能够看到所有用户创建的所有食谱,但只允许食谱的原始作者编辑或删除食谱.任何用户也可以创建新配方.
我的问题是我无法在子集合父文档的字段上设置子集的权限以"监听".
每个食谱文档包含三件事.称为一个字段name
存储配方的名称,其中,一个叫场creatorUID
,其中request.auth.uid
创作者的UID的存储和一个叫做子集合ingredients
包含一些随机域的文档.
service cloud.firestore {
match /databases/{database}/documents {
function isSignedIn() {
return request.auth != null;
}
match /ListOfRecipes/{recipe} {
allow read, create: if isSignedIn();
allow update, delete: if resource.data.creatorUID == request.auth.uid;
match /{list=**} {
allow read: if isSignedIn();
// Should return true if recipe.creatorUID has same value as request.auth.uid
allow write: if recipe.creatorUID == request.auth.uid;
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
问题是,使用这些规则它只能用于创建配方文档.db表示,子集合及其文档不会创建
FirebaseError:[code = permission-denied]:权限丢失或不足.FirebaseError:权限丢失或不足.
这些调用来自Angular客户端及其官方库.
firebase firebase-security angularfire2 google-cloud-firestore
所以我在github上托管了一个打字稿项目。
我正在尝试为测试设置 Travis CI,但是当我进入将代码编译为 javascript(tsc 命令)的步骤时,它失败了。
错误如下所示:
> node node_modules/typescript/bin/tsc
src/DbHandler.ts:2:32 - error TS2307: Cannot find module './models/User'.
2 import { User, UserInit } from './models/User';
~~~~~~~~~~~~~~~
src/User.ts:2:22 - error TS2307: Cannot find module './models/User'.
2 import { User } from "./models/User";
~~~~~~~~~~~~~~~
Found 2 errors.
npm ERR! code ELIFECYCLE
Run Code Online (Sandbox Code Playgroud)
文件的路径是正确的,它在本地编译得很好..
在项目中,我有这个 package.json(cleaned):
{
"name": "project",
"version": "0.0.1",
"description": "",
"main": "dist/server.js",
"scripts": {
"build": "node node_modules/typescript/bin/tsc",
"prod": "node dist/server.js",
"dev": "ts-node src/server.ts",
"dev:watch": "nodemon",
"test:watch": "ts-node node_modules/jasmine/bin/jasmine",
"test": "node …
Run Code Online (Sandbox Code Playgroud) 我正在 Angular 应用程序中实现 FIDO2(WebAuthn)。我已经获得了 PublicKeyCredentialCreationOptions 对象和 seccessfullt 寄存器。但打电话之后
let response = await navigator.credentials.create({'publicKey': myPublicKeyCredentialCreationOption })
Run Code Online (Sandbox Code Playgroud)
我尝试将响应发送到服务器。但是失败了。当我尝试使用浏览器中的对象查看时
console.log(JSON.stringify(response))
Run Code Online (Sandbox Code Playgroud)
我明白了
{}
Run Code Online (Sandbox Code Playgroud)
作为输出 (?..) 但在做时
console.log(response)
Run Code Online (Sandbox Code Playgroud)
我在控制台中得到一个带有值的对象...该对象应该如何序列化以发送到服务器?
我正在尝试使用 USER 类创建一个 API,该类可以有不止一种方法来使用 API 进行自身身份验证。
我已经设法让它与只有 1 个凭据的 1 个用户一起工作,但是当尝试扩展以允许多个凭据时,我收到错误:
UnhandledPromiseRejectionWarning: SequelizeDatabaseError: (conn=498, no: 1265, SQLState: 01000) Data truncated for column 'type' at row 1
我目前拥有的是这样的:
User.hasMany(Credential, { foreignKey: 'id', sourceKey: 'id' });
Run Code Online (Sandbox Code Playgroud)
和这个:
//Credential.ts
export function CredentialInit(sequelize: Sequelize) {
let cred = Object.keys(CredentialType);
let credArr: string[] = [];
for(let i = 0; i < cred.length/2; i++) {
credArr.push(`${i}`);
};
Credential.init({
email: {
type: DataTypes.STRING,
allowNull: true
},
password: {
type: DataTypes.STRING,
allowNull: true
},
token: {
type: DataTypes.STRING, …
Run Code Online (Sandbox Code Playgroud) 我在学校有一项任务,按特定顺序对文件内容进行排序.我必须首先使用Windows批处理文件,现在我必须在Linux中执行相同操作.整个文件看起来或多或少都像这样:
John Doe : Crocodiles : 1035
在Windows中我解决了这个问题:
sort /r /+39 file.txt
Run Code Online (Sandbox Code Playgroud)
文件中的行应按递减顺序按点数(右边的数字)排序.此外,分配的第二部分是按中心列对行进行排序.
如何在Linux中获得相同的结果?我在Linux中尝试了几种不同的sort命令变体,但到目前为止还没有成功.
javascript ×2
typescript ×2
angularfire2 ×1
bash ×1
command ×1
console.log ×1
ecmascript-6 ×1
enums ×1
firebase ×1
github ×1
jasmine ×1
json ×1
linux ×1
node.js ×1
sequelize.js ×1
sorting ×1
terminal ×1
travis-ci ×1
tsc ×1
webauthn ×1