¿Cómo leer / escribir desde una aplicación IOS configurada con firebase, a otra base de datos de firebase contenida en otro proyecto de firebase? Swift 3
Tengo una base de datos Firebase conectada a mi aplicación IOS con GoogleService-Info.plist. En AppDelegate configuré la aplicación FIRApp.configure (). Podría leer / escribir datos.
Ahora, desde esta aplicación IOS, me gustaría acceder a otra base de datos FireBasebrevCustomer
. Por alguna razónlet dbRef
deviewDidLoad
tiene una bandera en Xcode que dice este 'valor inmutabledbRef
nunca se usó 'y la aplicación se bloquea en la primera línea en inicio divertidodbRef.observe(.value, with: { (snapshot: FIRDataSnapshot) in
.
¿Alguien podría mostrar cómo hacer la configuración para que yo pueda leer / escribir en la base de datos brevCustomer?
EDITAR
Considere el siguiente escenario:
Tengo dos aplicaciones IOSCliente yObrero y dos proyectos de Firebase llamadosCustomerFireBase yTrabajadorFirebase y me gustaría que trabajen de la siguiente manera.
El cliente se registra con correo electrónico y contraseña, inicia sesión, realiza una reserva y los datos se guardan en CustomerFireBase.
El trabajador se registra con correo electrónico y contraseña, los registros son, observe WorkerFirebase para cambios de valor o hijo agregadoleer de CustomerFireBaseescribir a CustomerFireBaseescribir a WorkerFirebase¿Cómo puedo conseguir esto? Básicamente, necesito obtener acceso de lectura / escritura desde una aplicación IOS configuradade la manera habitual con Firebase, a otra base de datos de Firebase contenida en otro proyecto de Firebase.
Class Claim {
var dbRef:FIRDatabaseReference! //create a reference to Firebase database `brevCustomer`, not the one from .plist file
override func viewDidLoad() {
super.viewDidLoad()
let app = FIRApp(named: "brevCustomer")
let dbRef = FIRDatabase.database(app: app!).reference().child("Users")
startObservingDB() // observe the database for value changes
}
func startObservingDB() {
//it crashes on the line below
dbRef.observe(.value, with: { (snapshot: FIRDataSnapshot) in
//iterate over each user node child
for user_child in snapshot.children {
print(user_child)}
}, withCancel: { (Error: Any) in
print(Error)
})
} // end of startObservingDB()
}//end of Claim class
class AppDelegate: UIResponder, UIApplicationDelegate {
var window: UIWindow?
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
// Use Firebase library to configure APIs for the initial project with .plist file saved in Xcode
FIRApp.configure()
/** 1. create a Firebase options object to hold the configuration data for the second Firebase Project */
let secondaryOptions = FIROptions(googleAppID: "1:82424687545:ios:71df5d45218ad27",
bundleID: "com.vivvdaplar.Brev",
gcmSenderID: "8201647545",
apiKey: "AIzaSyCNtyUf2T3UunH6-ci_WyvOqCl_RzXI",
clientID: "8200687545-42vklp94reavi6li6bolhcraoofc6.apps.googleusercontent.com",
trackingID: nil,
androidClientID: nil,
databaseURL: "https://brev-72e10.firebaseio.com",
storageBucket: "com.vivvdaplar.Brev",
deepLinkURLScheme: nil)
// Configure the app
FIRApp.configure(withName: "brevCustomer", options: secondaryOptions!)
return true
}
} //end of AppDelegate