Firestore-如何从文档中知道ID?

时间:2019-07-08 23:41:01

标签: java android firebase google-cloud-firestore

如何从Firestore-Android Studio中的文档中知道ID?

在此代码中,您可以看到我如何创建一个新帐户,在这里我想使用用户ID创建新文档,但是他不使用该ID创建,而是将其另存为一个。

if (!confirmarCampos(nome,email,eNdata,id,password)){

        fAuth.createUserWithEmailAndPassword(email, password).addOnCompleteListener(new OnCompleteListener<AuthResult>() {

            @Override
            public void onComplete(@NonNull Task<AuthResult> task) {

                if (task.isSuccessful()) {
                    pessoa.put("nome", nome);
                    pessoa.put("email", email);
                    pessoa.put("ano", eNdata);
                    pessoa.put("idBicicleta", id);
                    pessoa.put("distancia", 0);
                    pessoa.put("pontos", 0);

                    db.collection("pessoa")
                            .document(user_id) //here i put the reference from user id
                            .set(pessoa)
                            .addOnCompleteListener(new OnCompleteListener<Void>() {
                                @Override
                                public void onComplete(@NonNull Task<Void> task) {

                                    if(task.isSuccessful()){
                                        Toast.makeText(Registar.this,"Perfil Criado com Sucesso", Toast.LENGTH_SHORT).show();


                                    }else{
                                        String erro = task.getException().getMessage();
                                        Toast.makeText(Registar.this,"ERRO :" + erro, Toast.LENGTH_SHORT).show();
                                    }
                                }
                            });
                    Intent iConfirmar = new Intent(Registar.this, Login.class);
                    startActivity(iConfirmar);
                    finish();
                }else{
                   Toast.makeText(Registar.this, "O email já existe", Toast.LENGTH_LONG).show();
                }
            }
        });
    }

在这里您可以看到新用户的ID。

enter image description here

在这里您可以看到新文档中的ID,它与用户ID不同。 因此,我无法使用文档内部的值,因为我想将这些值设置为profile.xml。

文档ID: enter image description here 谢谢您的帮助。

1 个答案:

答案 0 :(得分:0)

在这里,您是如何获得user_id的?

尝试以这种方式获取用户ID,

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:orientation="vertical" android:layout_width="match_parent"
    android:layout_height="match_parent">

    <androidx.constraintlayout.widget.ConstraintLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <TextView
            android:id="@+id/textView"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:background="#ff0000"
            android:gravity="center"
            android:text="TextView"
            app:layout_constraintBottom_toBottomOf="@+id/textView3"
            app:layout_constraintEnd_toStartOf="@+id/textView3"
            app:layout_constraintHorizontal_bias="0.5"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toTopOf="@+id/textView3" />

        <TextView
            android:id="@+id/textView3"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:background="#63f542"
            android:gravity="center"
            android:text="TextView"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintEnd_toStartOf="@+id/textView4"
            app:layout_constraintHorizontal_bias="0.5"
            app:layout_constraintStart_toEndOf="@+id/textView"
            app:layout_constraintTop_toTopOf="parent" />

        <TextView
            android:id="@+id/textView4"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:background="#ff00ff"
            android:gravity="center"
            android:text="TextView"
            app:layout_constraintBottom_toBottomOf="@+id/textView3"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintHorizontal_bias="0.5"
            app:layout_constraintStart_toEndOf="@+id/textView3"
            app:layout_constraintTop_toTopOf="@+id/textView3" />
    </androidx.constraintlayout.widget.ConstraintLayout>
</LinearLayout>