【问题标题】:What is wrong with my Cloud Firestore set opertion我的 Cloud Firestore 设置操作有什么问题
【发布时间】:2017-11-05 10:24:19
【问题描述】:

本周开始使用 Cloud Firestore,并阅读文档。
我在这里做错了,因为下面的代码运行但没有成功或失败侦听器正在触发并且在Cloud Firestore 没有写入。

我连接正常,因为在此之前我运行了 Cloud Firestore Transaction 并成功完成。我可以在https://console.firebase.google.com 中看到事务的结果。

这是运行但没有任何反应的代码:

final Map<String, Object> userHistoryMap = new HashMap<>();
userHistoryMap.put(History.ADDRESS_ID, "test1");
userHistoryMap.put(History.TIME, FieldValue.serverTimestamp());

DocumentReference newRef = mFirestore.collection(USER_HISTORY).document();

newRef.set(userHistoryMap).addOnSuccessListener(new OnSuccessListener<Void>(){
    @Override
    public void onSuccess(Void aVoid) {
        LogManager.d(this, "user history was saved");
    }
}).addOnFailureListener(new OnFailureListener() {
    @Override
    public void onFailure(@NonNull Exception e) {
        LogManager.report(new AddUserHistoryException("test");
    }
});

我在 logcat 中没有看到任何错误,我重新启动 Android Studio (3.0) 并且笔记本电脑没有任何帮助。感觉就像错过了一些非常明显的东西..:)

我确实同时从 Android Studio 收到了随机警告消息,指出保存此代码的文件(java 文件)没有保存,我必须在加载/恢复某些内容之间进行选择..也许这就是断点或代码的原因没有运行

更新: 将上面的代码移动到另一个源文件,如Fragment,代码运行完美。我搜索bug tracker,但一无所获。源代码文件已经过时了,但我可以在真实设备上构建和运行调试,源文件中的其他方法仍然有效

更新: 现在它再次发生我正在处理的源文件无法保存。包括一张图片:

更新:每当我在图片中收到上述错误消息时,我都会将代码 ctrl+c 复制到 Notepad++ 并将其粘贴回去,因为 java 文件中的底部代码总是丢失。也许我应该重新安装 Androis Studio 呵呵

【问题讨论】:

    标签: android google-cloud-firestore


    【解决方案1】:

    我认为您的代码中有一些语法错误。试试这个,

    final Map<String, Object> userHistoryMap = new HashMap<>();
    userHistoryMap.put(History.ADDRESS_ID, "test1");
    userHistoryMap.put(History.TIME, FieldValue.serverTimestamp());
    
    DocumentReference newRef = mFirestore.collection(USER_HISTORY);
    
    newRef.add(userHistoryMap).addOnSuccessListener(new OnSuccessListener<Void>(){
        @Override
        public void onSuccess(Void aVoid) {
            LogManager.d(this, "user history was saved");
        }
        }).addOnFailureListener(new OnFailureListener() {
        @Override
        public void onFailure(@NonNull Exception e) {
            LogManager.report(new AddUserHistoryException("test");
        }
    });
    

    我不确定,但还是试试吧。

    【讨论】:

    • 我想我试过了,是的 DocumentReference 没有 add()newRef 不是一个`CollectionReference`。我最终将代码放入事务中,这实际上是我需要的。奇怪的“无法保存文件错误”今天没有回来感谢上帝
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-22
    • 2018-01-09
    • 2011-01-22
    相关资源
    最近更新 更多