我正在使用Cloud Firebase Java管理API将数据写入我的Firestore实例 .

将一些数据写入Firestore的所有方法都返回 ApiFuture 的实例 . 现在,问题是除非我在返回的实例上调用 get() 方法,否则数据不会进入Firestore .

单个和批量写入操作都存在此问题 .

我试过完全无视未来并通过 addListener(Runnable, Executor) 添加回调 . 执行回调,但不以任何方式写入数据 .

如果我尝试在另一个线程(从调用写操作的线程)中执行 get() ,则抛出 io.grpc.StatusRuntimeExceptionCANCELLED: io.grpc.Context was cancelled without error .

另一个有趣的细节是,如果我用 Thread.sleep() 阻塞线程足够的时间(在我的情况下约为3秒),数据写得正确 .

有人知道可能导致这个问题的原因吗?

我正在使用版本5.7.0的Firebase管理API .