java - 如何使用firebase数据库中的值?

标签 java android database firebase-realtime-database

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

enter image description here

我想在项目的变量中包含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 coinAmount = dataSnapshot.child("coinsAmount").getValue(Long.class); 说:

Incompatible types. Required int but 'getValue' was inferred to T: Incompatible types: Long is not convertible to int

uidRef.addListenerForSingleValueEvent(valueEventListener);

说:

Cannot resolve symbol 'addListenerForSingleValueEvent

/image/PpU7n.png

正在 Activity 中初始化

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());

最佳答案

要获取 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

关于java - 如何使用firebase数据库中的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55817592/

相关文章:

android 每 24 小时显示一个 Activity

sql select,获取每辆车的最新条目

java - 错误 : main class not found

android - Windows 10 中的 Ionic 5 ERR_AVD_HOME_NOT_FOUND : No valid Android AVD home found.

java - 二进制(java)中的霍夫曼代码?

安卓 :Problem with parameter passing(webservices)

mysql - 查询mysql以根据列内容中的某些字符获取数据?

database - 替代 MS Access 中的多值字段

java - 缩小 Java 中的 Or/And 表达式?

java - 使用java api将文件上传到Google Drive