stackoverflow.com/questions/45266392

я есть база данных Firebase, подключенная к моему приложению IOS с помощью GoogleService-Info.plist. В AppDelegate я настроил приложение FIRApp.configure (). Я мог читать / писать данные.

Теперь из этого приложения IOS я бы хотел получить доступ к другой базе данных FireBasebrevCustomer, По какой-то причинеlet dbRef отviewDidLoad имеет флаг в Xcode, говорящий это 'неизменное значениеdbRef никогда не использовался », и приложение вылетает в первой строке в веселом startObserving ()dbRef.observe(.value, with: { (snapshot: FIRDataSnapshot) in.

Может кто-нибудь показать, как сделать настройку, чтобы я мог читать / писать в базу данных brevCustomer?

РЕДАКТИРОВАТЬ

Пожалуйста, рассмотрите следующий сценарий:

У меня есть два приложения IOSПокупатель а такжеработник и два проекта Firebase названыCustomerFireBase а такжеWorkerFirebase и я бы хотел, чтобы они работали следующим образом.

Клиент регистрируется по электронной почте и паролю, входит в систему, делает заказ, и данные сохраняются в CustomerFireBase.

Работник регистрируется с электронной почтой и паролем, логи есть, наблюдайте WorkerFirebase за изменениями значения или добавлением потомковчитать из CustomerFireBaseнаписать в CustomerFireBaseнаписать в WorkerFirebase

Как мне этого добиться? По сути, мне нужно получить доступ на чтение / запись из одного настроенного приложения IOSобычным способом с Firebase, к другой базе данных Firebase, содержащейся в другом проекте 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