Skip to content

Commit f80768a

Browse files
feat(firestore, windows): support multiple databases (#12998)
1 parent fc1e891 commit f80768a

File tree

1 file changed

+8
-5
lines changed

1 file changed

+8
-5
lines changed

‎packages/cloud_firestore/cloud_firestore/windows/cloud_firestore_plugin.cpp

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -183,15 +183,18 @@ CloudFirestorePlugin::CloudFirestorePlugin() {}
183183
CloudFirestorePlugin::~CloudFirestorePlugin() {}
184184

185185
Firestore* GetFirestoreFromPigeon(const FirestorePigeonFirebaseApp& pigeonApp) {
186-
if (CloudFirestorePlugin::firestoreInstances_.find(pigeonApp.app_name()) !=
186+
std::string cacheKey =
187+
pigeonApp.app_name() + "-" + pigeonApp.database_u_r_l();
188+
189+
if (CloudFirestorePlugin::firestoreInstances_.find(cacheKey) !=
187190
CloudFirestorePlugin::firestoreInstances_.end()) {
188-
return CloudFirestorePlugin::firestoreInstances_[pigeonApp.app_name()]
189-
.get();
191+
return CloudFirestorePlugin::firestoreInstances_[cacheKey].get();
190192
}
191193

192194
App* app = App::GetInstance(pigeonApp.app_name().c_str());
193195

194-
Firestore* firestore = Firestore::GetInstance(app);
196+
Firestore* firestore =
197+
Firestore::GetInstance(app, pigeonApp.database_u_r_l().c_str());
195198

196199
firebase::firestore::Settings settings;
197200

@@ -223,7 +226,7 @@ Firestore* GetFirestoreFromPigeon(const FirestorePigeonFirebaseApp& pigeonApp) {
223226

224227
firestore->set_settings(settings);
225228

226-
CloudFirestorePlugin::firestoreInstances_[pigeonApp.app_name()] =
229+
CloudFirestorePlugin::firestoreInstances_[cacheKey] =
227230
std::unique_ptr<firebase::firestore::Firestore>(firestore);
228231

229232
return firestore;

0 commit comments

Comments
 (0)