小编S.R*_*jit的帖子

如何在 AndroidManifest.xml 中隐藏 API 密钥

我刚刚启动了Flutter 的Google 地图插件,它要求我将生成的 API 密钥插入AndroidManifest.xmlandroid/app/src/main/AndroidManifest.xml. 几分钟后,我将其提交到我的存储库,并立即收到来自 Google 和 Git 的警告,要求更改生成新密钥等(不知道你不应该这样做,所以我现在很清楚)。

之后,我开始寻找隐藏 API 密钥的方法。一种解决方案是使用Flutter 安全存储插件,但这仅在.dart文件内有帮助(我认为)。另一种方法是创建一个单独的文件并将其添加到 .gitignore,但是当我构建 APK 时,该文件是否也会被捆绑?

理想情况下,我想发布它,但我不希望密钥易于访问,那么如何在AndroidManifest.xml不使用明文的情况下将 API 密钥加载到文件中?我想避免使用后端,所以我想我可以手动散列它,然后在运行时取消散列,但我仍然不知道如何动态更改文件AndroidManifest.xml

security android api-key flutter

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

Firebase 脚本未签名 - Powershell

我正在使用 Firebase 设置一个新项目,运行命令后firebase init functions,出现以下错误。

firebase : File C:\Users\fudge\AppData\Roaming\npm\firebase.ps1 cannot be loaded. The file C:\Users\fudge\AppData\Roaming\npm\firebase.ps1 is not digitally signed. 
You cannot run this script on the current system. For more information about running scripts and setting execution policy, see about_Execution_Policies at 
https:/go.microsoft.com/fwlink/?LinkID=135170.
At line:1 char:1
+ firebase init functions
+ ~~~~~~~~
    + CategoryInfo          : SecurityError: (:) [], PSSecurityException
    + FullyQualifiedErrorId : UnauthorizedAccess
Run Code Online (Sandbox Code Playgroud)

我知道我可以跑

Set-ExecutionPolicy -ExecutionPolicy Unrestricted
Run Code Online (Sandbox Code Playgroud)

允许它运行,但这似乎很危险,因为我想如果我的电脑有恶意脚本,我也会允许恶意脚本运行。是否有任何原因导致 Firebase 包未进行数字签名并且是否可以在firebase不更改执行策略的情况下使用?

在 init 命令之前我只使用了这三个命令,使用的是 Node v12.14.0:

npm init …
Run Code Online (Sandbox Code Playgroud)

powershell node.js firebase google-cloud-functions

8
推荐指数
2
解决办法
9188
查看次数

PWA 是否支持小部件

我有一些温度和流速读数从 ESP8266 发送到 firebase。在我现有的网站上,我可以查看这些读数,但我想知道是否可以制作 PWA,然后在我的主屏幕(Android 设备)上使用这些读数创建一个小部件。

目前使用 PWA 是否可行,还是我必须本地化?

widget progressive-web-apps

5
推荐指数
2
解决办法
576
查看次数

错误:14 不可用:未建立连接 - Cloud Firestore

我正在尝试在我的计算机上使用 firebase 的管理 SDK。当我尝试获取用户集合时,我得到了Error: 14 UNAVAILABLE: No connection established。写入 firestore 也没有任何作用。我怎样才能解决这个问题?

编辑 来自文档

设置 FIRESTORE_EMULATOR_HOST 环境变量后,Firebase Admin SDK 会自动连接到 Cloud Firestore 模拟器

我确实设置了该环境变量,但我正在尝试连接到生产环境。我如何指示 SDK 执行此操作?

index.js

const admin = require("firebase-admin");
const serviceAccount = require("./serviceAccount.json");
admin.initializeApp({
  credential: admin.credential.cert(serviceAccount),
  databaseURL: ""
});

const snapshot =  admin.firestore().collection('users').get().then((snapshot)=>{
  snapshot.forEach((doc) => {
    console.log(doc.id, '=>', doc.data());
  });
}).catch(e=>{
  console.error(e);
});
Run Code Online (Sandbox Code Playgroud)

完整的错误日志:

PS C:\Users\simeon.ramjit\Documents\projects\controllino-server> node index
Error: 14 UNAVAILABLE: No connection established
    at Object.callErrorFromStatus (C:\Users\simeon.ramjit\Documents\projects\controllino-server\node_modules\@grpc\grpc-js\build\src\call.js:31:26)
    at Object.onReceiveStatus (C:\Users\simeon.ramjit\Documents\projects\controllino-server\node_modules\@grpc\grpc-js\build\src\client.js:330:49)
    at Object.onReceiveStatus (C:\Users\simeon.ramjit\Documents\projects\controllino-server\node_modules\@grpc\grpc-js\build\src\client-interceptors.js:299:181)
    at C:\Users\simeon.ramjit\Documents\projects\controllino-server\node_modules\@grpc\grpc-js\build\src\call-stream.js:145:78
    at …
Run Code Online (Sandbox Code Playgroud)

node.js firebase google-cloud-firestore

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

如何在 Netlify 上将 SSR 与 Nuxt.js 结合使用

我理解的方式是服务器端渲染(SSR)是服务器渲染页面,然后通过一个流将数据块发送到浏览器,而不是浏览器(客户端)加载 HTML 页面,然后向所有页面发出请求。 JS/CSS等

这是我希望我的网页支持的行为。但是按照Netlify 的指南,可以正常生成静态 HTML 页面并包含所有外部依赖项的链接吗?

这样的话运行不会npm run generate禁用SSR吗?或者我完全误解了这是如何工作的?

server-side-rendering netlify nuxt.js

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

理解向量中的 .begin 和 .end

我正在从这篇文章中学习向量,它们从迭代器开始。他们定义 .begin 和 .end 如下:

begin() – 返回指向向量中第一个元素的迭代器

end() – 返回指向向量中最后一个元素之后的理论元素的迭代器

然后他们给出了以下代码片段,我添加了第三个 for 循环来表达我的问题。

#include<iostream>
#include<vector>

int main() {
    std::vector <int> g1; //creating a vector
    for (int i = 1; i <= 3; i++){
        g1.push_back(i);
    }
    std::cout << "Output of beginning and end values: ";
    for (auto i = g1.begin(); i != g1.end(); i++) {
        std::cout << *i << " "; 
    }
    std::cout << "\nOutput of beginning and end addresses: ";
    for (auto i = g1.begin(); i != …
Run Code Online (Sandbox Code Playgroud)

c++ vector auto

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

使用数组填充向量

我正在使用这篇文章学习如何在 C++ 中使用向量,他们在下面给出了使用数组填充向量的示例。不过语法有点混乱。

#include <iostream>
#include <string>
#include <vector>

int main() {
    // Array of string objects
    std::string arr[] = {
        "first",
        "sec",
        "third",
        "fourth"
    };

    // Vector with a string array
    std::vector < std::string > vecOfStr(arr,arr +sizeof(arr) / sizeof(std::string)); //This line is confusing
    for (std::string str: vecOfStr)
        std::cout << str << std::endl;
}
Run Code Online (Sandbox Code Playgroud)

就我的理解而言,在向量的变量名称之后是向量的大小。我会想象那本来只是简单的,sizeof(arr) / sizeof(std::string)但它是arr,arr +sizeof(arr) / sizeof(std::string). 谁能告诉我为什么?

c++ arrays vector

0
推荐指数
1
解决办法
114
查看次数