2016-09-26 18 views
5

Chúng tôi đang làm việc với phiên bản 3.x của Firebase của Google và chúng tôi gặp sự cố lạ từ Firebase. Chúng tôi đang sử dụng và Swift 3.0 để nhận chi tiết người dùng, chúng tôi đang sử dụng đoạn mã sau:Phương pháp Firebase 3x không hoạt động trên thiết bị thực nhưng làm việc trên trình mô phỏng Swift 3.0

func getUserDetails(uid text:String!, userBlock:@escaping (_ details:AnyObject) -> Void) { 
     //check DB Reference is nil or not. 
     if self.rootDBRef == nil { 
      self.rootDBRef = FIRDatabase.database().reference() 
     } 
     //check input text must not be empty 
     if text.trim().characters.count == 0 { 
      userBlock("" as AnyObject) 
      return 
     } 
     let query = self.rootDBRef.child("users").queryOrdered(byChild: "uid").queryEqual(toValue: text) 
     query.observeSingleEvent(of: .value, with: { (dbSnapshot) in 
      guard let snap: FIRDataSnapshot? = dbSnapshot else { 
       print("No Result Found") 
       return 
      } 
      if snap?.value is NSNull { 
       //block(found: false) 
       userBlock("" as AnyObject) 
       return 
      } 
      let dict = snap?.value as! [String : AnyObject] 
      userBlock(dict as AnyObject) 
     }) 
    } 

Đó là mã không bao giờ được gọi trong một thiết bị thực tế và chúng tôi không nhận được bất kỳ bản ghi lỗi, nhưng mã cùng công trình trong trình mô phỏng. Đó là một vấn đề lạ và có, tôi đã kiểm tra một câu hỏi tương tự: Firebase not worked on real devices (iOS)

Tôi cũng đã cố gắng vô hiệu hóa BitCode, nhưng điều đó không có tác dụng gì cả.

Chúng tôi đang sử dụng thiết bị iOS 9 với Xcode 8. Mọi trợ giúp đều được đánh giá cao.

+0

1 : Có bất kỳ đầu ra bàn điều khiển nào khác từ SDK Firebase 2: Có bất kỳ quy tắc nào trên cơ sở dữ liệu của bạn? –

+0

hi @lan không có bất kỳ giao diện điều khiển nào và không có gì chúng tôi nhận được từ firebase thats những điều chính thats lý do tại sao chúng tôi không thể idenfity whats vấn đề –

+0

@frank van bạn có thể vui lòng giúp –

Trả lời

1

Tôi nghĩ rằng sự cố là trên Xác thực. Bạn phải có Bật xác thực trên căn cứ hỏa lực nhưng có không Authenticate dùng Vì vậy, bạn không được phép truy cập vào cơ sở dữ liệu trên căn cứ hỏa lực.

+0

Không, đó không phải là lý do. Tôi đã đăng nhập thành công bằng cùng một tài khoản trên cả trình mô phỏng và iphone, nhưng trên thiết bị thực DB không thể truy cập được. – Jurasic

0

Bạn phải kích hoạt Anonymous đăng nhập trong căn cứ hỏa lực

Anonymous Login

Và theo FireBase Documentation

Bạn phải thêm FIRAuth.auth()?.signInAnonymously() trong didFinishLaunchingWithOptions của bạn trong appdelegate để cho phép Anonymous Đăng nhập

+0

Không giúp được gì. Hơn nữa, Thực tiễn không tốt để cho phép đăng nhập ẩn danh. – Jurasic

Các vấn đề liên quan