小编Sep*_*eed的帖子

Firebase 错误:来自 APNS 或 Web 推送服务的身份验证错误

在 node-js 中运行以下行后:

import * as admin from "firebase-admin";
import * as serviceAccount from "../../firebase_service_account_key.json";

const app = admin.initializeApp({
  credential: admin.credential.cert(serviceAccount as any),
  databaseURL: "https://my-app-path.firebaseio.com"
});

admin.messaging().send({
    token: "known-good-token",
    notification: {
        title: "Test Push Note",
        body: "Here is some text"
    }
});
Run Code Online (Sandbox Code Playgroud)

我收到错误:

Error: Auth error from APNS or Web Push Service 
Raw server response: 
"{
  "error":{
    "code":401,
    "message":"Auth error from APNS or Web Push Service",
    "status":"UNAUTHENTICATED",
    "details"[
      {
        "@type":"type.googleapis.com/google.firebase.fcm.v1.FcmError",
        "errorCode":"THIRD_PARTY_AUTH_ERROR"
      },
      {
        "@type":"type.googleapis.com/google.firebase.fcm.v1.ApnsError",
        "statusCode":403,
        "reason":"InvalidProviderToken"
      }
    ]
  }
}" …
Run Code Online (Sandbox Code Playgroud)

firebase firebase-authentication firebase-cloud-messaging

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

如何"使用"或导入本地Rust文件?

如何在完整路径my_project/src/include_me.rs中包含文件main.rs

我已经检查了依赖指南,所有这些指南似乎都包含了二进制文件.我也检查了"The Book",但其中没有一个例子以".rs"结尾.

如何include_me.rs使用项目的其余部分进行编译?

编辑:虽然"可能重复"将是一个包含这个问题的答案的好地方,但它并不包含它.这个问题的最佳答案中的语法更加相关,并在"重复"的问题中掩盖了

import rust

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

Typescript:“该节点的推断类型超出了编译器序列化的最大长度。需要显式类型注释。”

在此输入图像描述

我收到错误

“该节点的推断类型超出了编译器序列化的最大长度。需要显式类型注释。”

几个小时前,这工作得很好……我所做的任何更改(更新 npm 和节点)对于为什么会发生这种情况都没有任何意义。

我绝对不能给出显式的类型注释。


我尝试过的:

这是我对我正在尝试制作的工具的第三次完整重写,因为 Typescript 在这方面一直落后。

经过三次完全重写、数百个小时和极大的努力,在这个错误开始出现之前,一切都工作正常一整天。

我尝试更新所有内容(typescript、node、npm...没有其他可更新)

我尝试更新 tsconfig:

"compilerOptions": {
        "disableSizeLimit": true,
Run Code Online (Sandbox Code Playgroud)

我不知道该怎么做。我能想到的唯一选择是将 Typescript 扔进垃圾桶并在编译时进行类型检查......我想这对于这个项目来说是很好的。


在这个项目的第二次尝试中,我询问了更好的缓存

compiler-optimization typescript

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

如何在React中禁止"此浏览器中的标记<some-tag>无法识别"警告?

我在React中使用带有自定义标记名称的元素,并获得了这些错误.关于这个问题有一个GitHub问题(https://github.com/hyperfuse/react-anime/issues/33),有人说:

这是React 16中的一条新警告消息.与动漫/反应动画无关,可以安全地忽略此警告.

它可以被安全地忽略,这很好,但是当我的代码用无用的错误消息填充控制台时,它仍然不会通过审查.

我怎样才能抑制这些警告?

warnings reactjs

12
推荐指数
2
解决办法
4016
查看次数

VSCode“无法解析导入 X”,即使列在“help('modules')”下

我正在学习 Python 的第一天,并尝试将其导入SciPy到项目中。我通过pip installElementaryOS(Ubuntu 的衍生版本)安装了它。我已经通过以下方式验证了它的存在:

$ python
>>> help("modules")
Run Code Online (Sandbox Code Playgroud)

我得到的确切错误是:

导入“scipy”无法解析 Pylance (reportMissingImports)

当搜索这个错误时,我发现:

  1. 在 Windows 10 Powershell 上使用 Python 3.9.2 在 VS Code 中无法解析导入/无法从源 Pylance 解析- 接受的答案都指向项目特定.env文件。我没有这样的项目结构,对我来说,需要这样的项目结构也没有意义。

  2. 一个 github 问题——这个问题以“它刚刚自行修复”结束

当我运行程序时,控制台中没有出现任何错误。查找“Pylance”,它似乎是微软的产品。我怀疑 VSCode 无法正确检查。可能是因为pip在意想不到的地方安装了一些东西。这是我的猜测,但非常感谢任何帮助。


编辑:根据丢失路径的想法,我找到了这篇文章——How do I get into theenvironment VS Code is using for pylance?

添加了可以找到我的模块的路径后没有产生任何结果,尽管我不确定格式是否正确。也许它需要 glob 语法(例如 path/**/*)

在此输入图像描述

python visual-studio-code pylance

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

为什么当只调用同步函数时,javascript承诺异步?

在测试中,我发现JavaScript Promises 始终是异步的,无论它们是否在其链中包含任何异步函数.

以下是一些显示控制台中操作顺序的代码.如果运行它,您将看到即使每个函数都是同步的,输出也会显示两个aPromise()并行运行的调用,并且在运行2完成之前"surprisingly this happens after run 2 finishes" 不会发生.

function aPromise() {
  return new Promise(function(resolve, reject) {
    console.log("making promise A")
    resolve(bPromise());
    console.log("promise A resolved")
  });
}


function bPromise() {
  return new Promise(function(resolve, reject) {
    console.log("making and resolving promise B")
    resolve();
  });
}

aPromise().then(function() {
  console.log("finish run 1");
}).then(function() {
  console.log("surprisingly this happens after run 2 finishes");
});
aPromise().then(function() {
  console.log("finish run 2");
})
Run Code Online (Sandbox Code Playgroud)

输出到控制台:

making promise A
making and resolving promise B
promise …
Run Code Online (Sandbox Code Playgroud)

javascript asynchronous synchronous promise

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

如何解决 Firebase 中的“消息/注册令牌未注册”错误?

这是错误的文档:

提供的注册令牌未注册。以前有效的注册令牌可能因多种原因被取消注册,包括:

  • 客户端应用程序从 FCM 注销了自己。
  • 客户端应用程序已自动注销。如果用户卸载应用程序,或者在 iOS 上,如果 APNS 反馈服务报告 APNS 令牌无效,就会发生这种情况。
  • 注册令牌已过期。例如,Google 可能决定刷新注册令牌,或者 iOS 设备的 APNS 令牌可能已过期。
  • 客户端应用程序已更新,但新版本未配置为接收消息。

对于所有这些情况,请删除此注册令牌并停止使用它来发送消息。

为了弄清楚错误是什么,我首先需要将其缩小到以下四个原因之一。但首先我必须明白它们的意思。

  1. 应用程序未注册:应用程序取消注册意味着什么?我该如何测试?
  2. 无效的 APNS 令牌:我该如何检查?
  3. 过期令牌:令牌是全新的,所以这似乎不太可能,但我如何验证这一点?
  4. 未配置为接收消息:生成这些令牌的是同一个应用程序,那么还需要做什么?我该如何测试?

总的来说,我的大问题是,如何测试可能引发此错误的这 4 种以上情况中的任何一种?我能做些什么来取得进展?

firebase firebase-cloud-messaging

9
推荐指数
0
解决办法
5830
查看次数

为 monorepo 扩展“路径”tsconfig 文件

我有一个像这样的文件夹结构:

- mono-repo
  tsconfig.paths.json
  - Website
   tsconfig.json
   - src
     test.ts
     index.ts
  - Tool
   - src
    index.ts
Run Code Online (Sandbox Code Playgroud)
- mono-repo
  tsconfig.paths.json
  - Website
   tsconfig.json
   - src
     test.ts
     index.ts
  - Tool
   - src
    index.ts
Run Code Online (Sandbox Code Playgroud)
// mono-repo/Website/src/index.ts
import { test } from "test";
import { tool } from "tool";

test(tool);
Run Code Online (Sandbox Code Playgroud)

我希望能够进行扩展,tsconfig.paths.json以便每个包都为其他包正确输入模块导入。


失败的尝试 1

// mono-repo/tsconfig.paths.json
{
  "compilerOptions": {
    "paths": {
      "tool": ["Tool/src"],
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

问题:找不到模块“工具”。添加到路径的 baseUrl 指向mono-repo/Website/src/Tool/src. 这不是一条真正的道路。


失败的尝试 2

// mono-repo/Website/src/index.ts
import { test } from "test"; …
Run Code Online (Sandbox Code Playgroud)

typescript tsconfig monorepo

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

如何在React中创建样式元素并追加?

我正在学习React,并且(更重要的是)试图了解反应是如何实际运作的.

我有一些生成的CSS,我想作为样式元素追加到头部.在js land中,这将是:

const $style = document.createElement("style");
document.head.appendChild($style);
const randBlue = ~~(Math.random() * 250);
$style.innerHtml = `body { color: rgb(10, 10, ${randBlue}); }`;
Run Code Online (Sandbox Code Playgroud)

不幸的是,在React的土地上,事情在这方面似乎不太直白.我对此的理解是,将所有样式添加到willy nilly是不好的做法,因为有足够的人做这件事会导致问题.我也认识到大多数人都使用样式组件,魅力四射,样式化的jsx,或内联生成的CSS,因为它们可以避免上述威利猥亵可能产生的许多问题.

但我不想使用我不了解的模块,据我所知,上面的大多数创建样式元素并以某种方式将它们添加到头部,我想知道如何.

所以,如果我在React中并且有一些生成的css文本:

const randomColor = Math.random() > 0.5 ? "red" : "blue";
const generatedCss = `body { color: ${randomColor}; }`;
Run Code Online (Sandbox Code Playgroud)

这里有什么?

createStyleElementAndAppendToHead(generatedCss) {
  // mystery code
};
Run Code Online (Sandbox Code Playgroud)

css html-head reactjs

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

如何在不存储 TypeScript 的情况下进行内联类型检查?

我有一些界面

ITestInterface {
  foo: string;
}
Run Code Online (Sandbox Code Playgroud)

我想将此接口的实例作为参数传递给函数。该函数将采用任何对象类型,因此它本身不会进行类型检查。为了确保对象的类型正确,我可以使用存储:

const passMe: ITestInterface = { foo: "bar" };
someFunction(passMe);
Run Code Online (Sandbox Code Playgroud)

但我希望有一种方法可以内联创建参数,同时仍然进行类型检查。

// made up example syntax
someFunction({ foo: "bar" } istype ITestInterface);
Run Code Online (Sandbox Code Playgroud)

有没有像上面的内联示例这样的好方法?

我尝试过使用 as,但它不限制类型。例如,以下内容是有效的。

someFunction({ foo: "bar", hello: true } as ITestInterface);
Run Code Online (Sandbox Code Playgroud)

在这种情况下,我可以做的另一件事是修改someFunction模板,但这不是我认为很好的解决方案。我不会永远拥有这个特权。

someFunction<TYPE>(arg: TYPE) {
  // modify function definition
}

someFunction<ITestInterface>({foo: "bar"});
Run Code Online (Sandbox Code Playgroud)

typechecking typescript

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