android 在firebase中创建子对象[已关闭]

niwlg2el  于 2023-04-18  发布在  Android
关注(0)|答案(1)|浏览(87)

已关闭,该问题需要details or clarity,目前不接受回答。
**想要改进此问题?**通过editing this post添加详细信息并澄清问题。

昨天关门了。
Improve this question
我有一个实时数据库,有一个组代码的值。我希望代码将像一个自己的firebase,包括图像的位图,类似的东西:



我该怎么做?
我试着去做:

databaseReference.child("CODES").child(groupCode).child(bitMapToString(mBitmap)).setValue(mBitmap);

databaseReference.child("CODES").child(groupCode).setValue(mBitmap);

但都不管用

{
        String groupCode=this.getArguments().getString("groupNum");
        super.onActivityResult(requestCode, resultCode, data);
        if (resultCode == Activity.RESULT_OK)
        {



                    Uri chosenImageUri = data.getData();

                    Bitmap mBitmap = null;
                    try {
                       mBitmap = MediaStore.Images.Media.getBitmap(requireActivity().getContentResolver(), chosenImageUri);
                       Map<String, Object> codes = new HashMap<>();
                        codes.put(bitMapToString(mBitmap), true);

                        DatabaseReference db=FirebaseDatabase.getInstance().getReference();
                        DatabaseReference groupCodeRef = db.child("CODES").child(groupCode);
                        groupCodeRef.setValue(codes);

这是我的代码,它就是不起作用。如果我从Map中删除部分,直到最后它才起作用,所以问题在于插入
这是bitMapToString:

ByteArrayOutputStream baos = new ByteArrayOutputStream();
        bitmap.compress(Bitmap.CompressFormat.PNG, 100, baos);
        byte[] b = baos.toByteArray();
        String temp = Base64.encodeToString(b, Base64.DEFAULT);
        return temp;
    }
hc2pp10m

hc2pp10m1#

如果你想在41947781节点下存储多个值,那么你必须在它的正下方添加键值对。要使用Java实现这一点,请检查下面的代码:

Map<String, Object> codes = new HashMap<>();
codes.put("bitmap1", true);
codes.put("bitmap2", true);
codes.put("bitmap3", true);

DatabaseReference db = FirebaseDatabase.getInstance().getReference();
DatabaseReference groupCodeRef = db.child("CODES").child(groupCode);
groupCodeRef.setValue(codes);

我还建议您为setValue()操作附加一个侦听器,以查看是否出现错误。
上面的代码将创建一个结构,看起来像这样:

db
|
--- CODES
     |
     --- 41947781
           |
           --- bitmap1: true
           |
           --- bitmap2: true
           |
           --- bitmap3: true

的确,我们可以将代码添加到数组中,而不是Map中,但我建议您阅读以下资源:

相关问题