Comment stocker uniquement les données pour le courant utilisateur connecté en utilisant Firestore

user10198341:

Voici le code qui permet à l'utilisateur de stocker des données dans Firestore. Le problème est, les données uploadé est visible pour tous les utilisateurs connectés à l'application. Comment pourrais-je seulement permettre à l'utilisateur actuellement connecté pour stocker les données pour leur compte seulement?

Avec Firebase Database J'utilise le code suivant (qui fonctionne, mais pas pour Firestore)

FirebaseUser user = FirebaseAuth.getInstance () getCurrentUser (). Chaîne userId = user.getUid (); mDatabaseRef = FirebaseDatabase.getInstance () getReference (FB_DATABASE_PATH) .child (userId).

Les lignes ci-dessus de code permet aux données d'être stockées et récupérées seulement pour l'utilisateur connecté. Ainsi, les données est unique pour eux seulement.

Comment puis-je répliquer que pour Firestore?

 fetch=findViewById(R.id.fetchDocument);

    firestore = FirebaseFirestore.getInstance();

    upload =findViewById(R.id.uploadText);

    upload.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {

            POJO pojo = new POJO();
            pojo.setValue("Hello World");

            //below code creates collection, creates a inner doc. and uploads the value (pojo)

            firestore.collection("RootCollection").document("MyDoc")
                    .set(pojo).addOnSuccessListener(new OnSuccessListener<Void>() {
                @Override
                public void onSuccess(Void aVoid) {


                    //gets called if upload is successful
                    Toast.makeText(ichild.this,"Upload is successful", Toast.LENGTH_SHORT).show();

                }
            }).addOnFailureListener(new OnFailureListener() {
                @Override
                public void onFailure(@NonNull Exception e) {
                    Toast.makeText(ichild.this,"Upload is not successful" + e.getMessage(), Toast.LENGTH_SHORT).show();
                }
            });

        }
    });

    fetch.setOnClickListener(new View.OnClickListener() {
Alex Mamo:

Comment stocker uniquement les données pour le courant utilisateur connecté en utilisant Firestore

Vous pouvez obtenir la même chose si vous passez la uidà la document()méthode. Ainsi , les lignes de code suivantes utilisées dans la base de données en temps réel Firebase:

FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser();
String userId = user.getUid();
mDatabaseRef = FirebaseDatabase.getInstance().getReference(FB_DATABASE_PATH).child(userId);

Est équivalent à Firestore avec:

String uid = FirebaseAuth.getInstance().getCurrentUser().getUid();
FirebaseFirestore rootRef = FirebaseFirestore.getInstance();
DocumentReference uidRef = rootRef.collection("users").document(uid);
POJO pojo = new POJO();
uidRef.set(pojo);

Je suppose que tu aimes

Origine http://43.154.161.224:23101/article/api/json?id=219093&siteId=1
conseillé
Classement