Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/haskell/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 更新firestore中的单个文档字段_Android_Firebase_Google Cloud Firestore - Fatal编程技术网

Android 更新firestore中的单个文档字段

Android 更新firestore中的单个文档字段,android,firebase,google-cloud-firestore,Android,Firebase,Google Cloud Firestore,我有一个文档ref user/userid2343534,我想更新一个文档,该文档中有多个字段 我调用这个方法:ref.ref.updatenick,test123,我可以从日志中看到ref.getpath实际上是user/userid2343534 但是,在调用此方法并从OnSuccessListener获得成功后,我仍然看到firestore数据库中的字段没有更新。我在这里做错了什么 编辑: 我刚刚在本地emulator中运行了这段代码,它可以毫无问题地更新文档: DocumentRefer

我有一个文档ref user/userid2343534,我想更新一个文档,该文档中有多个字段

我调用这个方法:ref.ref.updatenick,test123,我可以从日志中看到ref.getpath实际上是user/userid2343534

但是,在调用此方法并从OnSuccessListener获得成功后,我仍然看到firestore数据库中的字段没有更新。我在这里做错了什么

编辑:


我刚刚在本地emulator中运行了这段代码,它可以毫无问题地更新文档:

DocumentReference ref = db.collection("56246892").document("uid");
ref.update("nick", "test123" ).addOnSuccessListener(new OnSuccessListener<Void>() {
    @Override
    public void onSuccess(Void aVoid) {
        System.out.println("Updated");
    }
});

您确定文档已经存在吗?这是更新工作所必需的。如果您不确定文档是否存在,请使用set…、SetOptions.merge。

请编辑问题以显示更完整的代码示例。这里没有足够的内容来完全理解你在做什么。谢谢你的评论@DougStevenson我现在编辑了我的问题并添加了更多的代码。如果还不清楚,还需要其他什么,请告诉我。我认为代码不会编译。您在函数中重新定义ref,该函数也将ref作为参数。Java不允许这样。哦,对不起。我编辑了我的方法。My ref实际上是该方法的一个参数,在另一个类的方法外部定义。集合和文档参数是从程序的不同部分设置的。我对它进行了编辑,使问题更简单一些。但是我在我做的小改动之前和之后都做了记录,以便检查它是否是相同的值,并且是相同的@DoughStevenson很抱歉给您带来了困惑。如果这不是您正在使用的确切代码,我不确定它在这里是否有帮助。关于堆栈溢出,您应该提供一个说明该问题的示例,任何人都可以自己复制。谢谢您的回复。你是100%正确的,代码是正确的,应该可以工作。我做了一些广泛的调试,结果证明这不是firebase的问题,而是将任务包装在RxJava Completable发射器中的问题,在该发射器中从不调用onsuccess。谢谢你的时间,我想我还得问另一个问题。我是否应该删除这个问题并重新格式化以包含rxjava问题,然后再次提问?这是我们要求an的原因之一:它让您有责任以一种允许我们以合理努力重现问题的方式隔离问题。既然你给的代码对我有用,它也会对你有用。如果你像我一样在一个独立的程序中尝试过这一点,你应该看到这段代码与问题无关,因此,问题一定在别处。这是成为一个更加独立的开发人员的关键,也是一个很好的工具。
DocumentReference ref = db.collection("56246892").document("uid");
ref.update("nick", "test123" ).addOnSuccessListener(new OnSuccessListener<Void>() {
    @Override
    public void onSuccess(Void aVoid) {
        System.out.println("Updated");
    }
});