我有一个从我的自定义调色板返回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”的颜色:
但是,应该如何解决呢?我是否应该手动删除整个资产目录并将其重新添加?
我正在构建一个使用Microsoft Graph登录的企业应用程序.成功签名后,我想使用令牌发送给Firebase Auth进行身份验证(这样我就可以保护对数据库的访问).
成功登录后收到的令牌无法直接用于Firebase.
获取项目的服务器密钥:
- 转到项目设置中的"服务帐户"页面.
- 单击"服务帐户"页面的Firebase Admin SDK部分底部的"生成新私钥".
- 新服务帐户的公钥/私钥对会自动保存在您的计算机上.将此文件复制到您的身份验证服务器
第三点说你需要输入密钥到认证服务器.这可能使用Microsoft Graph或Azure 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
我想改变状态栏的颜色之间.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 appearance
到NO
了在info.plist
文件中.
我以前使用的UIApplication.shared.statusBarStyle = .lightContent
那条线是- 但是因为自iOS9以来不推荐使用它,所以我再也不能使用它了.
任何人都知道如何动态更改它?
我跟这个很亲密.
我编写了一个Cloud Function,它将从Azure令牌发送的信息转换为自定义的Firebase令牌并将此令牌发送回客户端.
令牌已正确创建,但不会在我的HTTP请求中返回.
很遗憾,我的Firebase应用会导致超时.
函数执行花了60002毫秒,完成状态:'超时'
我无法真正理解为什么会这样,因此这篇文章.我的代码有问题,还是我调用HTTP请求错了?
这是我从Firebase Functions控制台获得的日志.
这是我的代码
// 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) 我需要通过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存储只是为了铸造新令牌,这感觉非常不必要。
我有一个UISegmentedControl
包含 4 个图像的控件。我希望这些能够与Aspect fit
.
在按钮上button.imageView?.contentMode = .scaleAspectFit
你可以做,但我似乎无法掌握这些imageView
部分。
如何才能做到这一点?以编程方式或故事板并不重要,因此我们将不胜感激!
我正在解密Firebase
正在发送到Firebase function
.
我对加密很陌生。但是我正在使用AES-256
, 静态IV
(我知道没有随机 iv 不是最好的解决方案)。
但我在两者上都得到了正确的结果Android
,iOS
但在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
关于如何改进此代码的任何想法?