【问题标题】:How update list of items on Firebase?如何更新 Firebase 上的项目列表?
【发布时间】:2016-07-01 22:36:59
【问题描述】:

如何更新 Firebase 数据库中的项目列表。我可以使用 setValue 来设置新列表,但我找不到如何添加列表中的一项。 (我不想发送所有列表项以仅更新一项)。

在此示例中,我尝试执行此操作,但方法 ref.updateChildren 无法正常工作。它显示了 databaseReference,但我在 Firebase 上看不到任何变化。

final DatabaseReference ref = FirebaseDatabase.getInstance().getReference().child("apps");
        for (final App app : apps) {
            ref.child(app.getFirebaseKey()).addValueEventListener(new ValueEventListener(){

                @Override
                public void onDataChange(DataSnapshot dataSnapshot) {
                    if (!dataSnapshot.exists()) {
                        ref.setValue(app.getFirebaseValue());
                    } else {
                        //check need add my phone or no.
                        FirebaseApp firebaseApp = dataSnapshot.getValue(FirebaseApp.class);
                        String myPhone = app.getFirebaseValue().getPhones().get(0);
                        if (firebaseApp.getPhones().contains(myPhone)) {
                            //do nothing
                        } else {
                            firebaseApp.getPhones().add(myPhone);
                            Map<String, Object> updates = new HashMap<String, Object>();
                            updates.put("phones", firebaseApp.getPhones());
                            ref.updateChildren(updates, new DatabaseReference.CompletionListener() {
                                @Override
                                public void onComplete(DatabaseError databaseError, DatabaseReference databaseReference) {
                                    if (databaseError == null) {
                                        Log.i(TAG, "databaseReference=" + databaseReference);
                                    } else {
                                        Log.i(TAG, "databaseError=" + databaseReference);
                                    }
                                }
                            });
                        }
                    }
                }

                @Override
                public void onCancelled(DatabaseError databaseError) {

                }
            });
        }

【问题讨论】:

    标签: java android firebase firebase-realtime-database


    【解决方案1】:

    这是我的错。我在内部类中使用了 ref,而不是 ref.child(app.getFirebaseKey());

    【讨论】:

      猜你喜欢
      • 2014-12-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-01
      • 2016-10-04
      • 1970-01-01
      相关资源
      最近更新 更多