首页 > 解决方案 > android如何将字节[]数据添加到云Firestore数据库

问题描述

我尝试将本地数据库的数据上传到 Cloud Firestore 数据库,其中一个字段的数据类型是 byte[]。这不可能是成功或失败。

        Map<String, Object> setDetail = new HashMap<>();
        j = cursor.getColumnIndex("sound");
        byte[] sound = cursor.getBlob(j);
        setDetail.put("sound", sound);
        dbFire.collection("SetDetails").document(strWordID).set(setDetail)
                .addOnSuccessListener(new OnSuccessListener<Void>() {
                    @Override
                    public void onSuccess(Void aVoid) {
                    }
                })
                .addOnFailureListener(new OnFailureListener() {
                    @Override
                    public void onFailure(@NonNull Exception e) {
                    }
                });

调试器越过这一行dbFire.collection("SetDetails").document(strWordID).set(setDetail)

然后跳到zzj.class的最后一行

final class zzj implements Runnable {
zzj(zzi var1, Task var2) {
    this.zzm = var1;
    this.zzg = var2;
}

public final void run() {
    synchronized(zzi.zza(this.zzm)) {
        if (zzi.zzb(this.zzm) != null) {
            zzi.zzb(this.zzm).onComplete(this.zzg);
        }

    }
}

}

如果我继续运行,会跳转到Looper.java这一行

        final int thresholdOverride =
            SystemProperties.getInt("log.looper."
                    + Process.myUid() + "."
                    + Thread.currentThread().getName()
                    + ".slow", 0);

我看过文档,Bytes是 Cloud Firestore 支持的数据类型之一,那么它有什么问题。有人可以帮我吗?谢谢!

标签: androiddatabasegoogle-cloud-firestore

解决方案


要在 Android 上编写字节数组类型字段,请使用Blob.fromBytes()将字节数组转换为 Blob 对象,然后将 Blob 对象提供给update()set()


推荐阅读