Поскольку я изменяю правило Firestore на
rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
match /{document=**} {
allow read, write: if request.auth != null;
}
}
}
, я получаю эту ошибку при выходе.
2020-05-03 15:53:01.337 28023-28023/com.wordpress.asayerbh E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.wordpress.asayerbh, PID: 28023
java.lang.NullPointerException: Attempt to invoke virtual method 'boolean com.google.firebase.firestore.DocumentSnapshot.exists()' on a null object reference
at com.wordpress.asayerbh.MainActivity.lambda$onCreate$0$MainActivity(MainActivity.java:111)
at com.wordpress.asayerbh.-$$Lambda$MainActivity$Ar1zoAyUIQ5aSR4DFFSn0UMdmmM.onEvent(Unknown Source:4)
at com.google.firebase.firestore.DocumentReference.lambda$addSnapshotListenerInternal$2(com.google.firebase:firebase-firestore@@21.4.3:482)
at com.google.firebase.firestore.DocumentReference$$Lambda$3.onEvent(Unknown Source:6)
at com.google.firebase.firestore.core.AsyncEventListener.lambda$onEvent$0(com.google.firebase:firebase-firestore@@21.4.3:42)
at com.google.firebase.firestore.core.AsyncEventListener$$Lambda$1.run(Unknown Source:6)
at android.os.Handler.handleCallback(Handler.java:873)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:193)
at android.app.ActivityThread.main(ActivityThread.java:6669)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
это мой основной код активности, чтобы имя пользователя находилось в заголовок навигационного ящика.
if (user.getDisplayName() == null || user.getDisplayName().equals("")) {
DocumentReference documentReference = mStore.collection("users").document(userID);
documentReference.addSnapshotListener(this, (documentSnapshot, e) -> {
if(documentSnapshot.exists()){
nav_user.setText(documentSnapshot.getString("fName"));
} else {
Log.d("tag", "onEvent: Document do not exists");
}
});
}
Я искал об этом. Я нашел вопрос о снимке документа. и должны быть удалены для выхода. Как это сделать?