Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/329.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
Java 具有设置数据的Firestore自定义文档ID无效-CollectionReference_Java_Android_Google Cloud Firestore - Fatal编程技术网

Java 具有设置数据的Firestore自定义文档ID无效-CollectionReference

Java 具有设置数据的Firestore自定义文档ID无效-CollectionReference,java,android,google-cloud-firestore,Java,Android,Google Cloud Firestore,在我的firestore云中,我想存储我的用户数据。因此,文档ID应该是来自auth的用户ID。手动设置文档ID时,无法设置数据。 这是我的密码: currentuser = FirebaseAuth.getInstance().getCurrentUser().getUid(); mFirestore = FirebaseFirestore.getInstance(); CollectionReference mFirestoreProfiles = mFirestore.collecti

在我的firestore云中,我想存储我的用户数据。因此,文档ID应该是来自auth的用户ID。手动设置文档ID时,无法设置数据。 这是我的密码:

currentuser = FirebaseAuth.getInstance().getCurrentUser().getUid();

mFirestore = FirebaseFirestore.getInstance();

CollectionReference mFirestoreProfiles = mFirestore.collection("profiles").document(currentuser).set();

     Profile profile = new Profile(
          email,
          birth
     );

mFirestoreProfiles.add(profile)
     .addOnSuccessListener(new OnSuccessListener<DocumentReference>() {
          @Override
          public void onSuccess(DocumentReference documentReference) {
               Snackbar snackbar = Snackbar
               .make((getWindow().getDecorView().getRootView()), "Registration successful.", Snackbar.LENGTH_LONG);
               snackbar.show();
               }
          })
      .addOnFailureListener(new OnFailureListener() {
          @Override
          public void onFailure(@NonNull Exception e) {
               Snackbar snackbar = Snackbar
               .make((getWindow().getDecorView().getRootView()), e.getMessage(), Snackbar.LENGTH_LONG);
               snackbar.show();
               }
          });
如果有人能抽出时间来帮我解决这个(真正愚蠢的)问题,那就太好了

问候
Jere

以下代码行:

CollectionReference mFirestoreProfiles = mFirestore.collection("profiles").document(currentuser).set();
将始终产生异常。要解决此问题,请将上述代码行更改为:

DocumentReference mFirestoreProfiles = mFirestore.collection("profiles").document(currentuser);
Profile profile = new Profile(email, birth);
mFirestoreProfiles.set(profile).addOnSuccessListener(new OnSuccessListener<Void>() {
    @Override
    public void onSuccess(Void aVoid) {
        Toast.makeText(getApplicationContext(), "Document written successfully!", Toast.LENGTH_SHORT).show();
    }
});
DocumentReference mFirestoreProfiles=mFirestore.collection(“profiles”).document(currentuser);
个人资料=新个人资料(电子邮件、出生);
mFirestoreProfiles.set(profile.addOnSuccessListener(新OnSuccessListener()){
@凌驾
成功时公开作废(作废避免){
Toast.makeText(getApplicationContext(),“文档编写成功!”,Toast.LENGTH\u SHORT.show();
}
});

即使将
profile
对象传递给
set()
方法,也会引发异常,因为
set()
方法返回类型是一个
Task
而不是
CollectionReference

谢谢您的回答,但这不起作用。。。第一行代码导致此错误:类型不兼容。必需:com.google.firebase.firestore.CollectionReference找到:com.google.firebase.firestore.DocumentReferenceMy-bad,抱歉!只是复制并粘贴它。应该是
set()
而不是
add()
。请参阅我的更新答案。问题是这行代码:CollectionReference mFirestoreProfiles=mFirestore.collection(“profiles”).document(currentuser);导致此错误的原因。不兼容的类型。必需:com.google.firebase.firestore.CollectionReference找到:com.google.firebase.firestore.DocumentReferenceSo现在我得到另一个错误:-(…addOnSuccessListener(com.google.android.gms.tasks.onSuccessListener)您使用的是精确的代码
。addOnSuccessListener(/*…*/);
DocumentReference mFirestoreProfiles = mFirestore.collection("profiles").document(currentuser);
Profile profile = new Profile(email, birth);
mFirestoreProfiles.set(profile).addOnSuccessListener(new OnSuccessListener<Void>() {
    @Override
    public void onSuccess(Void aVoid) {
        Toast.makeText(getApplicationContext(), "Document written successfully!", Toast.LENGTH_SHORT).show();
    }
});