2017-04-15 2 views
0

Ce code enregistre dans la base de données Firebase comme requis dans le simulateur, mais le gestionnaire d'achèvement n'est pas appelé sur le périphérique. Est-ce que quelqu'un sait pourquoi ou d'une solution possible?Firebase setValue() fonctionne dans le simulateur mais pas sur l'appareil, quelqu'un sait pourquoi? iOS 10, Swift 3.1

var customersRef : FIRDatabaseReference { 
      return dbRef.child("customers") 
    } 


func saveDealData(dealBuilder: DealBuilder, errMsgHandler: ErrMsgHandler?) { 
      print("Shown in log in sim and device") 
      customersRef.child(u.id!).child("deals").childByAutoId().setValue("true") { error, dbRef in 
        print("Is called for sim but not device") 

      } 
    } 

J'ai essayé de se débarrasser de la fermeture et de mettre à l'intérieur de fuite setValue() comme ci-dessous, mais la même chose se produit:

customersRef.child(u.id!).child("deals").childByAutoId().setValue("true", withCompletionBlock: { error, dbRef in 
        print("Is called in sim but not device") 
      }) 

Répondre

0

Ce comportement a été fixé par la coulée de la chaîne Swift NSString.

Comme ci-dessous:

customersRef.child(u.id!).child(("deals" as NSString)).childByAutoId().setValue("true") { error, dbRef in 
       print("Is now always called") 

     }