代码之家  ›  专栏  ›  技术社区  ›  King

检查空reference Firebase swift

  •  0
  • King  · 技术社区  · 7 年前

    我有一个应用程序,可以从引用中获取值。我现在遇到的问题是,有时引用可能不存在,如果引用不存在,则用户只是假设处于空闲状态。但是,我不知道如何完成这项任务,因为这个特殊的参照物可能不在火场上。

    func refreshActiveTrip() -> Observable<Trip> {
    
            guard let trip = getCurrentTrip()  else {
                return Observable.error(RxError.noElements)
            }
    
            tripRef = Database.database().reference(forTransportChampionId: (getChampion()?.id)!, tripId: trip.id!)
            return Observable<Trip>.create({ (observer) -> Disposable in
    
                let disposable = Disposables.create {
                    self.tripRef?.removeAllObservers()
                }
    
                self.tripRef?.observe(.value, with: { (snapshot) in
                    if let data = snapshot.value as? [String: AnyObject] {
    
                        let trip = Trip(dictionary: data as NSDictionary)
    
                        self.saveCurrentTrip(trip)
    
                        if !disposable.isDisposed {
                            observer.onNext(trip)
    
                        }
    
                    }
                })
                return disposable
            })
    
        }
    

    tripRef 可能为空,即它不存在,如何检查此值和空闲值

    1 回复  |  直到 7 年前
        1
  •  0
  •   Lazy    7 年前

    使用 exists()

    FIRDatabase.database().reference()
    
    ref.child("the_path").observeSingleEvent(of: .value, with: { (snapshot) in
        if snapshot.exists(){
            print("It exists!!")
        }else{
            print("Nope, doesn't exist!")
        }
    }) 
    

    Firebase Doc Reference

    推荐文章