小编Muh*_*ori的帖子

34
推荐指数
3
解决办法
3万
查看次数

使用 Firebase/Firestore 具有重新排序功能的任务列表

我想列出可以更改顺序的任务列表,但我不确定如何将其存储在数据库中。

我不想使用数组,因为我将来必须做一些进一步的查询。

这是我的数据库的屏幕截图:

数据库截图

我正在尝试制作类似 Trello 的东西,用户可以在其中添加任务,并且可以根据任务的优先级上下移动任务。我还需要更改数据库中任务的位置以维护记录。我无法理解如何在任何数据库中执行此操作。我是一名经验丰富的开发人员,我曾与 mongodb 和 firebase 合作过,但这对我来说是独一无二的。

这是创建和获取所有任务的代码。当我尝试在集合中移动某些任务时。我在每个任务中维护了一个索引。假设当我将任务从索引 5 的位置移动到索引 2 时,我必须通过 +1 编辑所有即将出现的索引有没有更好的方法?

代码示例

class taskManager {
    static let shared = taskManager()
    typealias TasksCompletion = (_ tasks:[Task],_ error:String?)->Void
    typealias SucessCompletion = (_ error:String?)->Void

    func addTask(task:Task,completion:@escaping SucessCompletion){
        Firestore.firestore().collection("tasks").addDocument(data: task.toDic) { (err) in
            if err != nil {
                print(err?.localizedDescription as Any)
            }
            completion(nil)
        }
    }

    func getAllTask(completion:@escaping TasksCompletion){
        Firestore.firestore().collection("tasks")
            .addSnapshotListener { taskSnap, error in
                taskSnap?.documentChanges.forEach({ (task) in
                    let object = task.document.data()
                    let json = try! JSONSerialization.data(withJSONObject: object, options: …
Run Code Online (Sandbox Code Playgroud)

database-design firebase swift firebase-realtime-database google-cloud-firestore

12
推荐指数
3
解决办法
1605
查看次数

实时获取 Apple Watch heartRateVariabilitySDNN?

我正在使用下面的函数来获取 heartRateVariabilitySDNN,但它只获取一次并且不能像 heartbeat 那样实时计算?

 func HRVstart() {
                        guard let quantityType = HKObjectType.quantityType(forIdentifier: .heartRateVariabilitySDNN) else { return }
                        
                        
                        self.healthStore.execute(self.HRVStreamingQuery())
                
                        // Create query to receive continiuous heart rate samples.
                        let datePredicate = HKQuery.predicateForSamples(withStart: Date(), end: nil, options: .strictStartDate)
                        let devicePredicate = HKQuery.predicateForObjects(from: [HKDevice.local()])
                        let queryPredicate = NSCompoundPredicate(andPredicateWithSubpredicates:[datePredicate, devicePredicate])
                        let updateHandler: HKQueryUpdateHandler = { [weak self] query, samples, deletedObjects, queryAnchor, error in
                            if let quantitySamples = samples as? [HKQuantitySample] {
                                self?.HRVprocess(samples: quantitySamples)
                            }
                        }
                        let query = HKAnchoredObjectQuery(type: quantityType,
                                                          predicate: queryPredicate,
                                                          anchor: nil, …
Run Code Online (Sandbox Code Playgroud)

ios swift healthkit apple-watch watchos

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

为什么`+ =`不适用于隐式解包的选项

为什么不+=使用隐式解包的选项,例如:

var count: Int! = 10
count = count + 10 // This works
count += 10 // this does not work
Run Code Online (Sandbox Code Playgroud)

为什么不是可选的隐式解包,就像这样的情况count = count + 10

optional swift forced-unwrapping

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

无法将模块'Arkit'加载为'ARKit'

在此输入图像描述

即使在链接的框架和库中添加了Arkit模块也没有加载.

swift swift4 ios11 arkit

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