当前位置: 首页 > 面试题库 >

如何仅使用Firestore为当前登录的用户存储数据

齐鹏程
2023-03-14
问题内容

以下是允许用户将数据存储到Firestore中的代码。问题是,登录到该应用程序的所有用户都可以查看上传的数据。我如何才能仅允许当前登录的用户仅存储其帐户的数据

对于Firebase数据库,我使用以下代码(有效,但不适用于Firestore)

FirebaseUser用户= FirebaseAuth.getInstance()。getCurrentUser(); 字符串userId =
user.getUid(); mDatabaseRef =
FirebaseDatabase.getInstance()。getReference(FB_DATABASE_PATH).child(userId);

上面的代码行仅允许已登录用户存储和检索数据。因此,数据仅对他们而言是唯一的。

如何复制到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() {

问题答案:

如何仅使用Firestore为当前登录的用户存储数据

如果将传递uiddocument()方法,则可以实现相同的目的。因此,以下代码行在Firebase实时数据库中使用:

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

在Firestore中等效于:

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


 类似资料:
  • 代码$清单- 在主页上,我想查看当前登录用户的清单,而不是所有用户的清单。我似乎找不到正确的代码。 检查表 用户表 HomeController的索引操作 存储来自ChecklistController的操作 用户模型 清单模型 主视图

  • 如何获取当前登录用户的型号?例如,如果系统职员和管理员中有两种类型的用户?我如何知道用户属于哪个模型?

  • X1.0新增 sp_update_current_user($user) 功能: 更新session里当前登录用户的信息 参数: $user:当前登录用户的最新信息 返回: 无

  • 我要求每个用户在登录时都可以更改自己的用户名。问题是如何更新Spring Security的身份验证令牌中的用户名()? (我必须更新它,因为在某些业务用例中,我使用身份验证令牌中的prinicpal名称来识别用户。) 我使用基于表单和cookie的基于我的登录,所以我的身份验证令牌是和。两者都有一个字段,其中存储了登录名。不幸的是,这个变量是,所以我不能更改它的值。 有人知道Spring Sec

  • 我正在使用hybridauth库。 Hybridauth文档说,通过存储会话数据,可以实现持久会话。 假设我在数据库中存储了用户会话数据。它包含oauth令牌、oauth刷新令牌等。。 使用oauth令牌,无需询问用户权限即可联系oauth服务器。 现在一切都好了。现在,如果用户登录到谷歌,如何准确地自动登录用户? ?

  • 接口说明 获取当前登录用户的ID 如需调用,请访问 开发者文档 来查看详细的接口使用说明 该接口仅开放给已获取SDK的开发者 API地址 GET /usercenter/api/userinfo/v1.0.0/getLoginUserId 是否需要登录 是 请求字段说明 参数 类型 请求类型 是否必须 说明 token string header 是 当前登录用户的TOKEN 响应字段说明 参数