繁体   English   中英

获取 firebase 火库值的值

[英]get the values of firebase firestore value

我想获取 firebase firestore 值的值,但我不断收到错误,有没有办法在不添加“”的情况下检索这些值?

DocumentReference documentReference = fStore.collection("Users").document(UserID);
    documentReference.addSnapshotListener(this, new EventListener<DocumentSnapshot>() {
        @Override
        public void onEvent(@Nullable DocumentSnapshot value, @Nullable FirebaseFirestoreException error) {
            assert value != null;
            mBankBalance.setText(""+ value.getDouble("Balance"));

        }
    });

每当我删除双引号时, mBankBalance.setText(""+value.getDouble("Balance"))行都会出错。 有没有办法只获取值?

您已经获得了正确的值,但是您不能将Double值设置为文本视图。

如果您将代码拆分为几行,您最容易看到这一点:

DocumentReference documentReference = fStore.collection("Users").document(UserID);

documentReference.addSnapshotListener(this, new EventListener<DocumentSnapshot>() {
    @Override
    public void onEvent(@Nullable DocumentSnapshot value, @Nullable FirebaseFirestoreException error) {
        assert value != null;
        Double balance = value.getDouble("Balance"));
        mBankBalance.setText(balance);
    }
});

使用此代码,您将在mBankBalance.setText(balance);上出错 , 而Double balance = value.getDouble("Balance")); 实际上工作正常。

原因是setText()只需要一个字符串值,它不会将您的Double转换为字符串。 这就是原始代码中的"" +所做的,上面也一样:

mBankBalance.setText("" + balance);

如果你(理所当然地)不喜欢在你的代码中有这样的空字符串,你也可以使用这个更明确的转换:

mBankBalance.setText(String.valueOf(balance));

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM