我已经使用Firebase开发了Android应用程序,并且已经使用Firebase开发了iOS应用程序。我以为我必须在Firebase中创建两个不同的项目。现在,为了使两者互相交谈,我被告知将两者放在同一个项目中。
我被要求去configuring multiple apps,但是看完之后,我有点困惑。任何澄清将不胜感激。
我想将我的iOS项目连接到我拥有的Android项目。
我了解我需要进入“概述”并添加另一个应用程序并选择“ IOS”。
我假设一旦执行此操作,就会得到一个新的GoogleService-Info.plist文件?而且我还假设我用旧的正确的替换了新的plist文件?
我不明白的是以下部分:
在您的应用程序中使用多个项目
有时您需要使用相同的API访问不同的项目-例如,访问多个数据库实例。在大多数情况下,会有一个中央Firebase应用程序对象来管理所有Firebase API的配置。此对象将作为常规设置的一部分进行初始化。但是,如果您想从一个应用程序访问多个项目,则需要一个不同的Firebase应用程序对象来分别引用每个对象。初始化这些其他实例由您决定。
在两种情况下,您都需要先创建一个Firebase选项对象来保存Firebase应用程序的配置数据。可以在以下类的API参考文档中找到有关这些选项的完整文档:
以下示例显示了如何使用这些类支持应用程序中的多个项目:
iOS:
// Configure with manual options. let secondaryOptions = FirebaseOptions(googleAppID: "1:27992087142:ios:2a4732a34787067a", gcmSenderID: "27992087142") secondaryOptions.bundleID = "com.google.firebase.devrel.FiroptionConfiguration" secondaryOptions.apiKey = "AIzaSyBicqfAZPvMgC7NZkjayUEsrepxuXzZDsk" secondaryOptions.clientID = "27992087142-ola6qe637ulk8780vl8mo5vogegkm23n.apps.googleusercontent.com" secondaryOptions.databaseURL = "https://myproject.firebaseio.com" secondaryOptions.storageBucket = "myproject.appspot.com"
Android:
// Manually configure Firebase Options FirebaseOptions options = new FirebaseOptions.Builder() .setApplicationId("1:27992087142:android:ce3b6448250083d1") // Required for Analytics. .setApiKey("AIzaSyADUe90ULnQDuGShD9W23RDP0xmeDc6Mvw") // Required for Auth. .setDatabaseUrl("https://myproject.firebaseio.com") // Required for RTDB. .build();
初始化此选项对象后,可以使用它来配置其他Firebase应用程序实例。请注意,在下面显示的所有示例中,我们使用字符串secondary。此名称用于检索应用程序实例,并将其与其他实例(包括默认实例(名为[DEFAULT]))区分开。您应该选择一个适合其他Firebase项目预期用途的字符串。
以下代码片段演示了如何连接到备用实时数据库(其他Firebase功能的API遵循相同的模式)。
iOS:
// Configure an alternative FIRApp. FirebaseApp.configure(name: "secondary", options: secondaryOptions) // Retrieve a previous created named app. guard let secondary = FirebaseApp.app(name: "secondary") else { assert(false, "Could not retrieve secondary app") } // Retrieve a Real Time Database client configured against a specific app. let secondaryDb = Database.database(app: secondary)
Android:
// Initialize with secondary app. FirebaseApp.initializeApp(this /* Context */, options, "secondary"); // Retrieve secondary app. FirebaseApp secondary = FirebaseApp.getInstance("secondary"); // Get the database for the other app. FirebaseDatabase secondaryDatabase = FirebaseDatabase.getInstance(secondary);
我只是不知道我是否必须同时为Android和IOS项目或者仅是IOS(在Firebase中我将添加到Android项目中)添加代码。
答案 0 :(得分:2)
您要参考的文档页面描述了如何将单个应用程序连接到多个Firebase项目。情况恰恰相反:您有多个应用程序要连接到单个Firebase项目。
为此,您只需:
google-services.json
,然后将其添加到您的Android项目中。google-services.plist
,并将其添加到您的iOS项目中。所以...忽略您引用的文档页面,而是将Android应用程序和iOS应用程序添加到同一项目中。然后,他们可以访问相同的后端服务。