Java 如何将文件/位图上载到云Firestore?
我想将文件/位图列表上载到Cloud Firestore 首先,我想上传一个文件/位图,但我有很多错误Java 如何将文件/位图上载到云Firestore?,java,android,firebase,google-cloud-firestore,Java,Android,Firebase,Google Cloud Firestore,我想将文件/位图列表上载到Cloud Firestore 首先,我想上传一个文件/位图,但我有很多错误 private FirebaseFirestore db = FirebaseFirestore.getInstance(); //... db.collection("CarShop").document("Cars").set(mFile); 按照以下方法,您可以将文件上载到Firebase云存储 FirebaseStorage storage = FirebaseStora
private FirebaseFirestore db = FirebaseFirestore.getInstance();
//...
db.collection("CarShop").document("Cars").set(mFile);
按照以下方法,您可以将文件上载到Firebase云存储
FirebaseStorage storage = FirebaseStorage.getInstance();
// Create a storage reference from our app
StorageReference storageRef = storage.getReference();
Uri file = Uri.fromFile(new File("path/to/images/rivers.jpg"));
StorageReference riversRef = storageRef.child("images/"+file.getLastPathSegment());
uploadTask = riversRef.putFile(file);
// Register observers to listen for when the download is done or if it fails
uploadTask.addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception exception) {
// Handle unsuccessful uploads
}
}).addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
@Override
public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
// taskSnapshot.getMetadata() contains file metadata such as size, content-type, etc.
// ...
}
});
FirebaseStorage=FirebaseStorage.getInstance();
//从我们的应用程序创建存储引用
StorageReference-storageRef=storage.getReference();
Uri file=Uri.fromFile(新文件(“path/to/images/rivers.jpg”);
storagereferef=storageRef.child(“images/”+file.getLastPathSegment());
uploadTask=riversRef.putFile(文件);
//注册观察员,以便在下载完成时或下载失败时监听
uploadTask.addOnFailureListener(新的OnFailureListener(){
@凌驾
public void onFailure(@NonNull异常){
//处理不成功的上传
}
}).addOnSuccessListener(新的OnSuccessListener(){
@凌驾
成功时公共无效(UploadTask.TaskSnapshot TaskSnapshot){
//taskSnapshot.getMetadata()包含文件元数据,如大小、内容类型等。
// ...
}
});
你可以阅读更多关于它的内容
对于Bimap:
Bitmap bitmap = ((BitmapDrawable) imageView.getDrawable()).getBitmap();
ByteArrayOutputStream baos = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.JPEG, 100, baos);
byte[] data = baos.toByteArray();
UploadTask uploadTask = mountainsRef.putBytes(data);
uploadTask.addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception exception) {
// Handle unsuccessful uploads
}
}).addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
@Override
public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
// taskSnapshot.getMetadata() contains file metadata such as size, content-type, etc.
// ...
}
});
位图位图=((BitmapDrawable)imageView.getDrawable()).getBitmap();
ByteArrayOutputStream bas=新的ByteArrayOutputStream();
压缩(bitmap.CompressFormat.JPEG,100,baos);
字节[]数据=baos.toByteArray();
UploadTask UploadTask=mountainsRef.putBytes(数据);
uploadTask.addOnFailureListener(新的OnFailureListener(){
@凌驾
public void onFailure(@NonNull异常){
//处理不成功的上传
}
}).addOnSuccessListener(新的OnSuccessListener(){
@凌驾
成功时公共无效(UploadTask.TaskSnapshot TaskSnapshot){
//taskSnapshot.getMetadata()包含文件元数据,如大小、内容类型等。
// ...
}
});
您有哪些错误?如果我有一个自定义类,并在其中列出位图,我可以怎么做?只需循环它。这是一个异步。。因此,在任何情况下都会起作用。此外,如果有帮助,请接受答案。但是私有FirebaseFirestore db=FirebaseFirestore.getInstance();?什么时候使用?我已经更新了答案。检查您将需要FirebaseStorage
,而不是FirebaseFirestore
。创建riversRef
时,您可以根据需要修改路径。但我使用Firestore。还是一样?