Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.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
Firestore ServerTimestamp在Model-Android中有时返回Null_Android_Firebase_Google Cloud Firestore - Fatal编程技术网

Firestore ServerTimestamp在Model-Android中有时返回Null

Firestore ServerTimestamp在Model-Android中有时返回Null,android,firebase,google-cloud-firestore,Android,Firebase,Google Cloud Firestore,在我的应用程序中,用户可以像在Facebook上一样在墙上发帖,每次有新帖子保存在我的收藏中后,它都会立即显示在RecyclerView中。以前我使用设备系统时间保存时间戳,没有任何错误。但是由于这是一种错误的方法,现在我使用FieldValue.serverTimestamp()将它保存在文档的字段中,它也可以正常工作,但有一个新问题。由于场景是每当有新帖子时,该项目将在POJO和addSnapshotListener的帮助下立即显示在RecyclerView中,但现在每个新添加的项目或新项目

在我的应用程序中,用户可以像在Facebook上一样在墙上发帖,每次有新帖子保存在我的收藏中后,它都会立即显示在RecyclerView中。以前我使用设备系统时间保存时间戳,没有任何错误。但是由于这是一种错误的方法,现在我使用
FieldValue.serverTimestamp()
将它保存在文档的字段中,它也可以正常工作,但有一个新问题。由于场景是每当有新帖子时,该项目将在
POJO
addSnapshotListener
的帮助下立即显示在RecyclerView中,但现在每个新添加的项目或新项目中的时间戳都会变为null,但当我重新启动应用程序时,时间戳是正确的

E/AndroidRuntime: FATAL EXCEPTION: main
              Process: com.bitwise.rotaractclubapp, PID: 23528
              java.lang.NullPointerException: Attempt to invoke virtual method 'java.util.Date com.google.firebase.i.d()' on a null object reference
                  at com.bitwise.rotaractclubapp.a.l$1$1.a(NewsfeedRecyclerAdapter.java:187)
                  at com.google.android.gms.g.w.run(Unknown Source)
                  at android.os.Handler.handleCallback(Handler.java:739)
                  at android.os.Handler.dispatchMessage(Handler.java:95)
                  at android.os.Looper.loop(Looper.java:148)
                  at android.app.ActivityThread.main(ActivityThread.java:5530)
                  at java.lang.reflect.Method.invoke(Native Method)
                  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:733)
                  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:623)
                  at de.robv.android.xposed.XposedBridge.main(XposedBridge.java:107)
这是我的样品模型

//Importation
import com.google.firebase.Timestamp;


public String uid, description;
public Timestamp time;
public boolean file;

//Needed for Firebase
public NewsfeedsModel(){}

public NewsfeedsModel(String uid, String description, Timestamp time, boolean file) {
    this.uid = uid;
    this.description = description;
    this.time = time;
    this.file = file;
}

public String getUid() {
    return uid;
}

public String getDescription() {
    return description;
}

public Timestamp getTime() {
    return time;
}

public boolean isFile() {
    return file;
}
这就是我如何在onBindViewHolder中将其转换为java.util.Date的方法,如果添加了新项,这里会发生错误

 Date date = postList.get(rightPosition).getTime().toDate();
我也在我的应用程序中添加了这行代码,希望它能解决这个问题

FirebaseFirestoreSettings settings = new FirebaseFirestoreSettings.Builder()
            .setTimestampsInSnapshotsEnabled(true)
            .build();

    FirebaseFirestore.getInstance().setFirestoreSettings(settings);

请添加代码并指出您收到此错误的位置,同时请添加数据库的屏幕截图。您好@AlexMamo感谢您使用Firestore的Algolia,顺便提一下,我更新了我的问题,我的数据库非常简单,有一个用户集合,其中文档id等于用户id,然后该文档中的字段,如time_stamp,其中数据类型为timestampYou's welcome。请添加该屏幕截图以更清楚地查看数据库和timestam属性。