警告:存储在 Firestore 中的 java.util.Date 个对象的行为将发生变化

WARNING: The behavior for java.util.Date objects stored in Firestore is going to change

我在实例化 Firestore 客户端时收到此警告。

fs = FirestoreClient.getFirestore();

解决方案附带警告,以如下方式实例化客户端:

FirestoreOptions options = 
FirestoreOptions.newBuilder().setTimestampsInSnapshotsEnabled(true).build();
Firestore firestore = options.getService();

建议,在正确实例化默认的 Firebase 应用程序后,我从 options.getService()

中得到一个 空引用

这仅适用于 Firebase admin sdk java 版本。它隐藏了 NodeJs 版本的警告。

根据 java 版本的文档,我不需要新的构建器,至少我能找到它。

当前包版本(来自gradle构建文件):

compile 'com.google.firebase:firebase-admin:6.7.0'

更新:

我现在注意到 createTime 属性 正在返回时间戳而不是日期,所以看起来行为已经改变,无论客户端的初始化方式如何。

对于 Admin SDK,您应该通过 FirebaseOptions 来检测该选项。

FirebaseOptions options =
          FirebaseOptions.builder()
              .setCredentials(credentials)
              .setFirestoreOptions(FirestoreOptions.newBuilder()
                  .setTimestampsInSnapshotsEnabled(true)                 
                  .build())
              .build();
FirebaseApp.initializeApp(options);
Firestore db = FirestoreClient.getFirestore();