2016-07-13 54 views
7

Ho un database Firebase attualmente connesso alla mia app con GoogleService-Info.plist, ecc. Funziona alla grande.Utilizza più di un database Firebase in un'unica app - Swift

Vorrei collegare la mia app anche a un secondo database di Firebase.

Sembra che questo problema sia stato risolto per Android here.

Qualche idea su come aggiungere un secondo database Firebase con Swift in Xcode?

EDIT: Ho provato diversi approcci, compreso l'utilizzo di FIROptions per configurare un'istanza di un database. Non riesco proprio a strutturare il codice correttamente. Qualsiasi aiuto è apprezzato!

risposta

8

Il modo corretto per inizializzare un altro database è per inizializzare un'altra applicazione, utilizzando il costruttore FIROptions, in questo modo:

FIRDatabase().database() // gets you the default database 

let options = FIROptions(googleAppID: bundleID: , GCMSenderID: , APIKey: , clientID: , trackingID: , androidClientID: , databaseURL: "https://othernamespace.firebaseio.com", storageBucket: , deepLinkURLScheme:) // fill in all the other fields 
FIRApp.configureWithName("anotherClient", options: options) 
let app = FIRApp(named: "anotherClient") 
FIRDatabase.database(app: app!) // gets you the named other database 

Oppure si può inizializzare da un altro plist di nome piuttosto che un grande costruttore:

let filePath = NSBundle.mainBundle().pathForResource("MyCool-GoogleService-Info", ofType:"plist") 
let options = FIROptions(contentsOfFile:filePath) 
+0

Grazie, Mike. Sono contento che sia possibile. – tsteve

+0

Mike, come ci viene notificato quando viene rilasciata l'uscita con questa funzione? – frank

+0

È tutto nelle note sulla versione: https://firebase.google.com/support/releases. A proposito, il metodo che desideri è qui: https://firebase.google.com/docs/reference/ios/firebaseanalytics/interface_f_i_r_options.html#a9a699abf436a6fcf9fd8165a2dfceaf6 –

0

Con la nuova versione del Firebase si dovrebbe fare:

let filePath = Bundle.main.path(forResource: "My-GoogleService", ofType: "plist") 
guard let fileopts = FirebaseOptions.init(contentsOfFile: filePath!) 
     else { assert(false, "Couldn't load config file") } 
FirebaseApp.configure(options: fileopts) 
Problemi correlati