【问题标题】:How do I store users on app open without authenticator?如何在没有身份验证器的情况下将用户存储在打开的应用程序上?
【发布时间】:2019-04-28 13:00:34
【问题描述】:

我正在 Android Studio 上开发一个应用程序,它具有虚拟货币 - 例如“硬币”。我想使用云 Firestore 将用户的硬币数量存储在我的 firebasefirestore 数据库中。

我不希望他们使用身份验证器进行注册以存储硬币数量。我只想将用户的电话 ID 与硬币数量一起存储。我该怎么做?

【问题讨论】:

    标签: android firebase google-cloud-firestore


    【解决方案1】:

    如果您想存储用户的硬币数量,您将需要某种方式来识别用户。如果您想在不要求他们登录的情况下识别用户,您可以使用Firebase's anonymous authentication。使用它让用户登录 Firebase 可以很简单:

    FirebaseAuth.getInstance().signInAnonymously();
    

    之后,您可以获得唯一标识用户的 UID:

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

    虽然有更多方法可以识别用户,但使用 Firebase 身份验证对您有一些好处:

    【讨论】:

    • 它给了我一个错误。我的意思是它在使用 getUid() 后立即使应用程序崩溃-尝试调用虚拟方法'java.lang.String com.google.firebase.auth.FirebaseUser .getUid()' 在空对象引用上
    • 这意味着您在用户登录之前调用了FirebaseAuth.getInstance().getCurrentUser().getUid();
    【解决方案2】:

    不要使用 firebase 身份验证。 只需使用 firebase Databasereference 即可。 (如果有任何错误或误解,请告诉我)

    例如:

    Databasereference ref = FirebaseDatabase.getInstance().getReference().child("coins");
    HashMap<String, Object> hashMap = new HashMap<>();
    hashMap.put("uid",something.getText().toString());
    hashMap.put("coin",something.getText().toString());
    

    【讨论】:

      猜你喜欢
      • 2017-07-12
      • 2021-03-16
      • 1970-01-01
      • 1970-01-01
      • 2014-08-09
      • 1970-01-01
      • 2018-03-19
      • 1970-01-01
      • 2022-11-30
      相关资源
      最近更新 更多