首页 > 解决方案 > 如何使用 firebase 数据库中的值?

问题描述

我在 Firebase 数据库中有值,我只想将它作为一个 int 变量。

在此处输入图像描述

我想在项目中的变量中有coinsAmount。

我正在寻找很多信息但无法理解,因为大部分信息都是英文的,我不完全理解谷歌翻译器的翻译请告诉我怎么做或者扔掉它的写处

 ValueEventListener valueEventListener = new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        int coinsAmount = dataSnapshot.child("coinsAmount").getValue(Long.class);
        text.setText(coinsAmount);
    }

    @Override
    public void onCancelled(@NonNull DatabaseError databaseError) {
        Log.d(TAG, databaseError.getMessage()); //Don't ignore errors!
    }
};
   uidRef.addListenerForSingleValueEvent(valueEventListener);

int coinsAmount = dataSnapshot.child("coinsAmount").getValue(Long.class);说:

不兼容的类型。必需的 int 但“getValue”被推断为 T:不兼容的类型:Long 不能转换为 int

uidRef.addListenerForSingleValueEvent(valueEventListener);

说:

无法解析符号'addListenerForSingleValueEvent

https://i.stack.imgur.com/PpU7n.png

在活动中初始化

public class MenuActivity extends BaseActivity {
public TextView text;
private static final String TAG = "MenuActivity";
DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference uidRef = rootRef.child("users").child(getUid());

标签: javaandroiddatabasefirebase-realtime-database

解决方案


要获取您的coinsAmount财产的价值,请使用以下代码行:

String uid = FirebaseAuth.getInstance().getCurrentUser().getUid();
DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference uidRef = rootRef.child("users").child(uid);
ValueEventListener valueEventListener = new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        long coinsAmount = dataSnapshot.child("coinsAmount").getValue(Long.class);
        Log.d(TAG, String.valueOf(coinsAmount));
    }

    @Override
    public void onCancelled(@NonNull DatabaseError databaseError) {
        Log.d(TAG, databaseError.getMessage()); //Don't ignore errors!
    }
};
uidRef.addListenerForSingleValueEvent(valueEventListener);

您的 logcat 中的输出将是:

0

推荐阅读