小编Gio*_*usa的帖子

UIColor(named :)在iOS 11.0-11.2上始终返回nil

我有一个从我的自定义调色板返回UIColor的类。我以编程方式调用此方法,但是当我在iOS 11上对其进行测试时,它始终会返回nil结果...我在多种设备和OS版本11.0、11.0.1、11.2上尝试了此操作,并且所有方法都返回nil。但是,只要我在> iOS 12上运行它们,它就会始终返回正确的颜色。

var color: UIColor? {
    switch self {
    case .darkIndigo: return UIColor(named: "darkIndigo")
    case .lightNavy: return UIColor(named: "lightNavy")
    case .cobalt: return UIColor(named: "cobalt")
    }
}
Run Code Online (Sandbox Code Playgroud)

我最近更改了应用程序的包ID ...,这使我认为这与使用多个包时UIImage存在的类似问题有关。特别是当我收到错误消息时

警告:无法从以下任何捆绑包中解析名为“ darkIndigo”的颜色:

但是,应该如何解决呢?我是否应该手动删除整个资产目录并将其重新添加?

uiimage ios swift ios11

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

Firebase自定义Auth与Microsoft Azure/Graph

我正在构建一个使用Microsoft Graph登录的企业应用程序.成功签名后,我想使用令牌发送给Firebase Auth进行身份验证(这样我就可以保护对数据库的访问).

成功登录后收到的令牌无法直接用于Firebase.

Firebase自定义身份验证说明页面上,它说:

获取项目的服务器密钥:

  1. 转到项目设置中的"服务帐户"页面.
  2. 单击"服务帐户"页面的Firebase Admin SDK部分底部的"生成新私钥".
  3. 新服务帐户的公钥/私钥对会自动保存在您的计算机上.将此文件复制到您的身份验证服务器

第三点说你需要输入密钥到认证服务器.这可能使用Microsoft GraphAzure AD吗?

Firebase为您提供的密钥是JSON文件.我已经检查了Microsoft App注册门户,它允许您编辑应用程序Manifest,但没有运气.

JSON文件如下所示:

{
    "type": "service_account",
    "project_id": "APP_ID",
    "private_key_id": "KEY_ID_VALUE",
    "private_key": "-----BEGIN PRIVATE KEY----<KEY VALUE>-----END PRIVATE KEY-----\n",
    "client_email": "firebase-adminsdk-0ubvc@********.iam.gserviceaccount.com",
    "client_id": "XXXXXXXXXXXX",
    "auth_uri": "https://accounts.google.com/o/oauth2/auth",
    "token_uri": "https://accounts.google.com/o/oauth2/token",
    "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
    "client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/firebase-adminsdk-0ubvc%XXXXXXXX.iam.gserviceaccount.com"
}
Run Code Online (Sandbox Code Playgroud)

我似乎无法找到任何涵盖此问题的github项目或stackoverflow线程.

如何使用MS Graph或Azure AD接收自定义令牌?

azure-active-directory firebase-authentication microsoft-graph

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

在Swift 4中动态更改状态栏颜色

我想改变状态栏的颜色之间.lightContent.default动态(因为我的背景可以在同一个视图控制器改变).

我试图为此创建一个看起来像这样的函数:

func changeStatusBar(useDefault: Bool) {
    if useDefault {
        var preferredStatusBarStyle: UIStatusBarStyle {
            return .default
        }
    } else {
        var preferredStatusBarStyle: UIStatusBarStyle {
            return .lightContent
        }
    }
    setNeedsStatusBarAppearanceUpdate()
}
Run Code Online (Sandbox Code Playgroud)

但没有运气.我在网上找到的每个指南(或者在Stackoverflow上)都只显示了如何更改statusBar,而不是通过函数打开和关闭.

我也设置View controller-based status bar appearanceNO了在info.plist文件中.

我以前使用的UIApplication.shared.statusBarStyle = .lightContent那条线是- 但是因为自iOS9以来不推荐使用它,所以我再也不能使用它了.

任何人都知道如何动态更改它?

ios swift

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

适用于Firebase HTTP超时的云功能

我跟这个很亲密.

我编写了一个Cloud Function,它将从Azure令牌发送的信息转换为自定义的Firebase令牌并将此令牌发送回客户端.

令牌已正确创建,但不会在我的HTTP请求中返回.

很遗憾,我的Firebase应用会导致超时.

函数执行花了60002毫秒,完成状态:'超时'

我无法真正理解为什么会这样,因此这篇文章.我的代码有问题,还是我调用HTTP请求错了?

这是我从Firebase Functions控制台获得的日志.

Firebase功能日志

这是我的代码

// Create a Firebase token from any UID
exports.createFirebaseToken = functions.https.onRequest((req, res) => {

  // The UID and other things we'll assign to the user.
  const uid = req.body.uid;
  const additionalClaims = {
    name: req.body.name,
    email: req.body.email
  };

  // Create or update the user account.
  const userCreationTask = admin.auth().updateUser(uid, additionalClaims).catch(error => {

    // If user does not exists we create it.
    if (error.code === 'auth/user-not-found') {
      console.log(`Created user …
Run Code Online (Sandbox Code Playgroud)

javascript firebase google-cloud-functions

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

是否可以通过内部功能访问Firebase管理员?

我需要通过Firebase函数访问firebase admin 。我有一个通过HTTP触发器调用的函数,它将创建自定义身份验证令牌。

Firebase管理文档中,他们说您需要引用JSON包含所有键(serviceAccount)的文件

var serviceAccount = require("path/to/serviceAccountKey.json");

admin.initializeApp({
  credential: admin.credential.cert(serviceAccount),
  databaseURL: "https://<databaseName>.firebaseio.com"
})
Run Code Online (Sandbox Code Playgroud)

由于我已经在自己的Firebase函数中,因此我需要上传这些密钥,还是可以任何其他方式访问它?

将我所有的管理密钥上传到Firebase存储只是为了铸造新令牌,这感觉非常不必要。

firebase google-cloud-functions firebase-admin

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

UISegmentedControl 中的宽高比适合图像

我有一个UISegmentedControl包含 4 个图像的控件。我希望这些能够与Aspect fit.

在按钮上button.imageView?.contentMode = .scaleAspectFit你可以做,但我似乎无法掌握这些imageView部分。

如何才能做到这一点?以编程方式或故事板并不重要,因此我们将不胜感激!

uisegmentedcontrol ios swift

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

Node.js AES 解密 Base64 字符串

我正在解密Firebase正在发送到Firebase function.

我对加密很陌生。但是我正在使用AES-256, 静态IV(我知道没有随机 iv 不是最好的解决方案)。

但我在两者上都得到了正确的结果AndroidiOS但在node.js.

消息是 Base64 编码的

这是我的代码:

const crypto = require('crypto');
const cryptoKey = "MyEncryptionKey1MyEncryptionKey1";
const text = "Cidor8Ph7pZqPw0x2AwIKw=="

let messageToDecrypt = new Buffer(text, "utf8")
let key = new Buffer(cryptoKey, "utf8");
var decipher = crypto.createCipheriv('aes-256-cbc', key, iv);
var decoded = decipher.update(messageToDecrypt,'base64','utf-8');
decoded += decipher.final('utf-8');
text = decoded
console.log(decoded
Run Code Online (Sandbox Code Playgroud)

代码编译并运行,但它给了我一个看起来类似于这个的笨拙的答案 ??C?p?-Q?)?1H&?8pD}5?i????g

关于如何改进此代码的任何想法?

javascript encryption node.js google-cloud-functions

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