From 5cdf877e01b6732900042e6cb37debd90e74d9ee Mon Sep 17 00:00:00 2001 From: Guillaume Bernos Date: Thu, 16 Jul 2026 10:59:50 +0200 Subject: [PATCH] fix(firestore,windows): reply on platform thread to prevent warnings --- .../windows/cloud_firestore_plugin.cpp | 20 +++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/packages/cloud_firestore/cloud_firestore/windows/cloud_firestore_plugin.cpp b/packages/cloud_firestore/cloud_firestore/windows/cloud_firestore_plugin.cpp index 6a9bd90e77d9..10c22a824228 100644 --- a/packages/cloud_firestore/cloud_firestore/windows/cloud_firestore_plugin.cpp +++ b/packages/cloud_firestore/cloud_firestore/windows/cloud_firestore_plugin.cpp @@ -173,6 +173,15 @@ class PlatformThreadDispatcher { std::queue> tasks_; }; +template +void ReplyOnPlatformThread(std::function)> result, + ErrorOr reply) { + PlatformThreadDispatcher::GetInstance().Post( + [result = std::move(result), reply = std::move(reply)]() mutable { + result(std::move(reply)); + }); +} + struct EventSinkState { std::mutex mutex; std::unique_ptr> events; @@ -1603,11 +1612,14 @@ void CloudFirestorePlugin::QueryGet( if (completed_future.error() == firebase::firestore::kErrorOk) { const firebase::firestore::QuerySnapshot* querySnapshot = completed_future.result(); - result(ParseQuerySnapshot(querySnapshot, - GetServerTimestampBehaviorFromPigeon( - options.server_timestamp_behavior()))); + ReplyOnPlatformThread( + result, + ParseQuerySnapshot(querySnapshot, + GetServerTimestampBehaviorFromPigeon( + options.server_timestamp_behavior()))); } else { - result(CloudFirestorePlugin::ParseError(completed_future)); + ReplyOnPlatformThread( + result, CloudFirestorePlugin::ParseError(completed_future)); } }); }