簡體   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