将Firebase数据库阵列返回到另一个函数,但返回空

用户名

我正在制作提示卡应用。我将数据库添加到一个数组,但是在另一个函数中调用该数组(我要在其中进行更改)后,它返回空值。我对此主题进行了很多搜索,发现我必须使用完成处理程序,我认为我已经完成了。关于此主题的信息很多,例如https://firebase.googleblog.com/2018/07/swift-closures-and-firebase-handling.html,但我似乎无法使其适用于我的应用。提示卡视图:

import SwiftUI

struct CueCardView: View {

var viewModel = CueCardViewModel()
@State private var isShowingAnswer = false

var body: some View {
    ZStack{
        RoundedRectangle(cornerRadius: 25, style: .continuous)
            .fill(Color.white)
        VStack{
              Text("heloo")
                .onAppear{
                    self.viewModel.initializeCues()
                }
        }
        .padding(20)
        .multilineTextAlignment(.center)
    }
    .onTapGesture {
        self.isShowingAnswer.toggle()
    
    }
    
}


}

struct C1_Previews: PreviewProvider {
static var previews: some View {
    
    CueCardView().previewDevice("iPhone 12")
}

}

提示卡型号:

import SwiftUI

struct CueCardModel : Identifiable {
var id: String = UUID().uuidString
var term: String
var answer: String
}

下载资料:

import SwiftUI
import Firebase

var dbRef = Firestore.firestore()
struct DataDownloader {
func downloadCues(completion: @escaping ([CueCardModel]) -> Void) {
    var array = [CueCardModel]()
    dbRef.collection("Cues").getDocuments(){(snap, err) in
        if let err = err {
            print(err)
        } else {
            guard let snap = snap else {return}
            
                for doc in snap.documents {
                let id = doc.documentID
                let term = doc.get("term") as! String
                let answer = doc.get("answer") as! String
                let cue = CueCardModel(id: id, term: term, answer: answer)
                array.append(cue)
            }
            completion(array)
        }
    }
}
}

提示卡视图模型:

import SwiftUI
import Firebase

class CueCardViewModel: ObservableObject {

let dataDownloader = DataDownloader()

func initializeCues() {
    dataDownloader.downloadCues() { array in
        print(array)
    }
    
}
}
尼克萨尔诺

确保查询路径与您在Firebase中设置的查询路径完全相同。我建议为所有集合的名称创建一个Struct(可能为每个集合中的每个Field创建额外的Struct),以避免在进行查询时键入明确的字符串。避免所有数据库字段都使用小写字母也是常见的做法,以避免区分大小写的字符串问题。例如:

使用集合创建全局Struct:

struct DatabaseCollections {
    static let cue = "cue"
    static let nextCollection = "collection_two"
}

用法:

dbRef.collection(DatabaseCollections.cue).getDocuments...

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何使用include函数通过php变量将数据库查询的结果返回到另一个页面

来自分类Dev

将值从Firebase JS回调方法(DAL)返回到另一个函数(控制器)

来自分类Dev

将函数的静态数组返回到main()函数中的另一个数组

来自分类Dev

函数将数组返回到另一个函数>未捕获的TypeError

来自分类Dev

Python 函数将类型作为参数返回到另一个脚本

来自分类Dev

将布尔值从一个函数返回到另一个函数-VBA

来自分类Dev

如何将字符串从一个函数返回到另一个函数?

来自分类Dev

调用另一个数据库中的函数时的VBA访问返回值

来自分类Dev

在powershell中将变量从一个函数返回到另一个函数

来自分类Dev

Python:将变量从一个函数返回到另一个函数,而无需重新运行第一个函数

来自分类Dev

从另一个库上的函数返回 char*

来自分类Dev

使用线程守护程序将变量的值从构造函数的方法返回到另一个方法

来自分类Dev

从void函数返回到另一个void函数在C ++中合法吗?

来自分类Dev

如何读取从另一个函数返回到Twilio函数的响应?

来自分类Dev

函数内的回调应该返回到另一个函数

来自分类Dev

从函数返回另一个文件中的数据

来自分类Dev

将变量值从Codeigniter中的另一个函数插入数据库?

来自分类Dev

返回到另一个故事板的按钮

来自分类Dev

如何从Node.js函数获取返回值,该函数包含来自另一个应用程序的数据库查询

来自分类Dev

如何使用phonegap android在函数中将值从值返回到另一个

来自分类Dev

无法将一个函数的单元格范围的地址返回到另一个函数,出现“要求对象”错误

来自分类Dev

如何通过多处理将布尔值从一个函数返回到另一个函数?

来自分类Dev

如果从另一个函数调用,为什么Laravel的Response :: json返回空白?

来自分类Dev

如何查询一个数据库,如果没有返回结果,则查询另一个数据库?

来自分类Dev

Angular 2从组件到服务再返回到另一个组件共享数据

来自分类Dev

如何将ArrayList从AsyncTask返回到另一个类?

来自分类Dev

将SELECT的结果返回到另一个过程

来自分类Dev

如何将ArrayList从AsyncTask返回到另一个类?

来自分类Dev

将SELECT的结果返回到另一个过程

Related 相关文章

  1. 1

    如何使用include函数通过php变量将数据库查询的结果返回到另一个页面

  2. 2

    将值从Firebase JS回调方法(DAL)返回到另一个函数(控制器)

  3. 3

    将函数的静态数组返回到main()函数中的另一个数组

  4. 4

    函数将数组返回到另一个函数>未捕获的TypeError

  5. 5

    Python 函数将类型作为参数返回到另一个脚本

  6. 6

    将布尔值从一个函数返回到另一个函数-VBA

  7. 7

    如何将字符串从一个函数返回到另一个函数?

  8. 8

    调用另一个数据库中的函数时的VBA访问返回值

  9. 9

    在powershell中将变量从一个函数返回到另一个函数

  10. 10

    Python:将变量从一个函数返回到另一个函数,而无需重新运行第一个函数

  11. 11

    从另一个库上的函数返回 char*

  12. 12

    使用线程守护程序将变量的值从构造函数的方法返回到另一个方法

  13. 13

    从void函数返回到另一个void函数在C ++中合法吗?

  14. 14

    如何读取从另一个函数返回到Twilio函数的响应?

  15. 15

    函数内的回调应该返回到另一个函数

  16. 16

    从函数返回另一个文件中的数据

  17. 17

    将变量值从Codeigniter中的另一个函数插入数据库?

  18. 18

    返回到另一个故事板的按钮

  19. 19

    如何从Node.js函数获取返回值,该函数包含来自另一个应用程序的数据库查询

  20. 20

    如何使用phonegap android在函数中将值从值返回到另一个

  21. 21

    无法将一个函数的单元格范围的地址返回到另一个函数,出现“要求对象”错误

  22. 22

    如何通过多处理将布尔值从一个函数返回到另一个函数?

  23. 23

    如果从另一个函数调用,为什么Laravel的Response :: json返回空白?

  24. 24

    如何查询一个数据库,如果没有返回结果,则查询另一个数据库?

  25. 25

    Angular 2从组件到服务再返回到另一个组件共享数据

  26. 26

    如何将ArrayList从AsyncTask返回到另一个类?

  27. 27

    将SELECT的结果返回到另一个过程

  28. 28

    如何将ArrayList从AsyncTask返回到另一个类?

  29. 29

    将SELECT的结果返回到另一个过程

热门标签

归档