【问题标题】:I am trying to get the sum of values from my "price" node in the firebase database我正在尝试从 Firebase 数据库中的“价格”节点获取值的总和
【发布时间】:2019-07-06 10:44:46
【问题描述】:

应用程序正在构建且没有错误,但在运行时它会在 logcat 中出现以下错误:

java.lang.NullPointerException:尝试在 com.bwae.kuja.Main2Activity.onDataChange 的空对象引用上调用虚拟方法“int java.lang.Integer.intValue()”。

我也收到了警告:

'ds.child("Price).getValue(Integer.class) 的拆箱可能会产生 java.lang.NullPointerException。

我是使用整数的新手,所以请帮助我对我的代码进行必要的编辑:

@Override
protected void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main2);
    mda = FirebaseDatabase.getInstance().getReference().child("Cart");
    ValueEventListener eventListener = mda.addValueEventListener(new ValueEventListener() {
        @Override
        public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
            int sum = 0;
            for (DataSnapshot ds : dataSnapshot.getChildren()) {
                int pvalue = ds.child("Price").getValue(Integer.class);
                sum += pvalue;
                if (sum < 100) {
                    Toast.makeText(getApplicationContext(), "success", Toast.LENGTH_SHORT).show();
                } else {
                    Toast.makeText(getApplicationContext(), "sorry", Toast.LENGTH_SHORT).show();

                }
            }


        }

        @Override
        public void onCancelled(@NonNull DatabaseError databaseError) {
            Log.d(TAG, databaseError.getMessage());

        }
    });

下图是我的数据库的视图。我正在尝试获取价格下数字的总值,例如 99+66

一旦从数据库中的子项(价格)计算出总数,如果总数小于 100,我应该会收到一条 toast 消息说成功。

【问题讨论】:

  • 请更新您的问题以包含您附加监听器的代码。现在我们必须知道dataSnapshot 包含什么。
  • 我已经更新了

标签: android firebase-realtime-database integer


【解决方案1】:

从您的数据截图来看,Price 之后似乎有一个空格字符,所以"Price "。以下是属性名称 PricePrice 在 Firebase 控制台中的显示方式:

您可以修复数据中的这个错误,或者更新代码以从正确的属性中读取值:

int pvalue = ds.child("Price ").getValue(Integer.class);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-01-02
    • 1970-01-01
    • 1970-01-01
    • 2017-03-26
    • 2017-10-12
    • 1970-01-01
    • 1970-01-01
    • 2017-11-09
    相关资源
    最近更新 更多