在swift中,如何在此代码中返回 func read(){
reference(to: .users).getDocuments() { (querySnapshot, err) in
if let err = err {
print("Error getting documents: \(err)")
} else {
for document in querySnapshot!.documents {
print("\(document.documentID) => \(document.data())")
}
}
}
}
:
read()
上面的代码从firebase读取数据并在else语句中输出数据。我想从视图控制器调用read()
函数,querySnaphot!.documents
应该返回func read() -> QuerySnaphot{
...
return querySnapshot!.documents
。如果我这样做,我怎么能这样做:
awk '{ $1 = "s10";
$4 >= 50000 && $4 <=150000;
print $1"\t"$2"\t"$3"\t"$4"\t"$5"\t"$6""\t"$7"\t"$8"\t"$9}' infile > outfile
它给我一个错误,它返回一个非空值
答案 0 :(得分:1)
void函数中出现意外的非void返回值
您无法在缓冲区内返回值。而不是它,你可以使用完成处理程序。
func read(_ completion:@escaping(_ querySnapshot:[QueryDocumentSnapshot])->Void){
reference(to: .users).getDocuments() { (querySnapshot, err) in
if let err = err {
print("Error getting documents: \(err)")
} else {
if let documents = querySnapshot?.documents{
completion(documents)
}
}
}
<强>用法:强>
read { (documents) in
for document in documents{
print("\(document.documentID) => \(document.data())")
}
}