如何在Firebase中通过自定义键更改数据?

时间:2019-01-07 08:46:51

标签: android firebase firebase-realtime-database

我有一个使用Firebase编写的应用程序,我希望我的另一个具有管理员权限的应用程序可以读取和编辑自定义密钥中的数据 *.*

如果这是图片,则假定随机密钥是我的密钥,而我想编辑数据或使用该特定自定义密钥中的当前数据添加新数据。 任何帮助将不胜感激

2 个答案:

答案 0 :(得分:0)

不能100%确定您的要求,但是如果您想让所有的孩子都愿意,请执行以下操作:

DatabaseReference ref = FirebaseDatabase.getInstance().getReference().child("yourTable");
ref.addListenerForSingleValueEvent(
    new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {
            // All your data is in dataSnapshot
        }

        @Override
        public void onCancelled(DatabaseError databaseError) {
        }
    }
);

如果要通过按键设置特定孩子的价值,请执行以下操作:

DatabaseReference ref = FirebaseDatabase.getInstance().getReference().child("yourTable");
ref.child("mySpecificChildId").child("message").setValue("new value");

如果这些方法没有帮助,请添加一个更具体的问题!

答案 1 :(得分:0)

如果这些密钥是自动生成的,但是您无法获得它们,那么您拥有什么特权也没关系。

但是,如果您确实拥有密钥或从函数中获取密钥,并且想要更改特定节点上的值或只是读取它们,则可以查询该密钥的数据库,并在事后进行更改,例如这个:

FirebaseDatabase database = FirebaseDatabase.getInstance();
DatabaseReference mRef = database.getReference().child("YOUR KEY");

然后您可以访问节点上的读取和编辑值

mRef.child("message") //Do Whatever you want

PS:只需确保您正在检查dataSnapshot是否退出!

编辑:

如果您的第一个应用是生成密钥的应用,则可以将它们存储在其他节点中,并根据位置访问该节点以获取密钥,并确保访问该节点后只需查询密钥即可。