在 Xcode(swift 文件)中,我面临一个问题,即右括号的自动插入不再起作用。
例如:当我写
func myFunc() {
Run Code Online (Sandbox Code Playgroud)
然后按回车,Xcode 不会插入右括号,我需要自己做(我对此很生气......)
然而,我的设置似乎很好:首选项 -> 文本编辑选项卡 ->“自动插入右大括号”== true
每个包含注释代码的文件似乎都会发生这种情况,尤其是这个(非常常见的)注释: //}
配置:Xcode 版本 10.0 (10A255)
在新 Playground 上重现的步骤:
//}func test() {这绝对是文本编辑器中的一个错误。已向 Apple 漏洞报告者提交。
每个人都可以重现该错误还是由于某些配置?如果是这样,我能做些什么来解决它?
我需要从Firebase数据库中的4个节点检索数据.按照设计,在firebase中,这只能通过触发4个查询来完成.在我的情况下,这4个查询是独立的,因为我已经知道每个查询的路径:我可以同时解雇它们.
我从Frank van Puffelen那里了解到,Firebase能够在同一个连接中管理多个查询(参见此处).
这非常有用,因为它避免了顺序触发n次查询和松散往返时间.
在Javascript中,我们可以将查询包装到一个promises数组中,然后将它们全部一起解压缩.
const arrayOfPromises = [
promise1,
promise2,
promise3,
promise4];
Promise.all(arrayOfPromises);
Run Code Online (Sandbox Code Playgroud)
我的问题是如何在Swift中继续?
我试图创建一个数组DatabaseReference并从中观察childValues:
let refs = [Database.database().reference().child("node1"),
Database.database().reference().child("node2"),
Database.database().reference().child("node3"),
Database.database().reference().child("node4")]
refs.child(uid).observeSingleEvent(of: .value, with: { (snapshot) in
//Do something
}
Run Code Online (Sandbox Code Playgroud)
但似乎observeSingleEvent只能从单个DatabaseReference(而不是从DatabaseReference数组)触发
我有一个带有未知键/值对的对象,像这样
myObj = {
key_1: value_1,
key_2: value_2,
key_n: value_n
}
Run Code Online (Sandbox Code Playgroud)
我想将其转换为像这样的结构化对象的字典:
dictOfStructureObjects =
{
key_1: {
name: value_1,
type: 'foo'},
key_2: {
name: value_2,
type: 'foo'},
key_n: {
name: value_n,
type: 'foo'}
}
Run Code Online (Sandbox Code Playgroud)
我尝试了这个:
var dic = snapshot.val();
var arr = Object.keys(dic || {});
var names = arr.map(element => {
var rObj = {};
rObj[element.value] = {name: dic[element.value], type: 'foo'};
});
Run Code Online (Sandbox Code Playgroud)
但是我认为尝试使用其属性引用数组元素的值value是不正确的...
从关于保存支持类型的数据的Firestore 文档中,我是红色的:
var docData = {
//...
dateExample: new Date("December 10, 1815"),
//...
}
};
db.collection("data").doc("one").set(docData).then(function() {
console.log("Document successfully written!");
});
Run Code Online (Sandbox Code Playgroud)
这是我在 Cloud Functions 中用于将各种日期保存到 Firestore 的方法。它很好用!
当我需要检索这些日期并将它们作为字符串发布到第三方 API 时,我的问题就出现了。
据我了解,在 Firebase/Firestore 中,日期存储为 Unix 时间戳。
我找不到任何地方(firebase doc,stackoverflow ...)如何将其正确转换为字符串。
我尝试了以下失败:
function timeConverter(UNIX_timestamp){
var a = new Date(UNIX_timestamp * 1000);
var months = ['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec'];
var year = a.getFullYear();
var month = months[a.getMonth()];
var date = a.getDate();
var hour = a.getHours();
var min = a.getMinutes();
var sec = a.getSeconds();
var time …Run Code Online (Sandbox Code Playgroud) node.js firebase google-cloud-functions google-cloud-firestore
我有这样的字典:
const recommendations =
{ '014A8C3D-FE99-4DE3-9F9F-F197A3CB270F':
{ zL: 0.0402632597754549,
zD: 0,
mL: 2,
mD: 0,
rate: 0.02013162988772745 },
'036EA860-FDF1-40DA-8915-A2F02241DC7D':
{ zL: 0.0297356539387,
zD: 0,
mL: 1,
mD: 0,
rate: 0.0297356539387 },
'4A49B2C5-62A6-494B-BE77-FBEF5C102579':
{ zL: 0.052390243902439025,
zD: 0,
mL: 1,
mD: 0,
rate: 0.052390243902439025 },
'640674E4-5080-4BFD-983F-330D1C9150D0':
{ zL: 0.011376894745,
zD: 0,
mL: 1,
mD: 0,
rate: 0.011376894745 }
}Run Code Online (Sandbox Code Playgroud)
每个键都是一个“推荐标识符”,每个值都是推荐属性的字典。
我想获得一组推荐 ID,按“速率”属性排序(降序):
//sortedRecommendations
['4A49B2C5-62A6-494B-BE77-FBEF5C102579',
'036EA860-FDF1-40DA-8915-A2F02241DC7D',
'014A8C3D-FE99-4DE3-9F9F-F197A3CB270F',
'640674E4-5080-4BFD-983F-330D1C9150D0']Run Code Online (Sandbox Code Playgroud)
我想我应该首先将我的字典(不可排序)转换为数组(可排序)。但后来我找不到获得预期结果的方法......