Android Firebase存储异常
我的代码运行得很好,但今天我遇到了这个异常,有人能帮忙吗?日志附在后面 谢谢 下面是用于从firebase存储下载内容的代码Android Firebase存储异常,android,firebase,firebase-storage,Android,Firebase,Firebase Storage,我的代码运行得很好,但今天我遇到了这个异常,有人能帮忙吗?日志附在后面 谢谢 下面是用于从firebase存储下载内容的代码 final long ONE_MEGABYTE = 1024 * 1024; islandRef.getBytes(ONE_MEGABYTE).addOnSuccessListener(new OnSuccessListener<byte[]>() { @Override public void onSuccess(byte[] bytes)
final long ONE_MEGABYTE = 1024 * 1024;
islandRef.getBytes(ONE_MEGABYTE).addOnSuccessListener(new OnSuccessListener<byte[]>() {
@Override
public void onSuccess(byte[] bytes) {
// Data for "images/island.jpg" is returns, use this as needed
}
}).addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception exception) {
// Handle any errors
}
});
final long ONE_MEGABYTE=1024*1024;
islandRef.getBytes(1兆字节).addOnSuccessListener(新的OnSuccessListener(){
@凌驾
成功时的公共void(字节[]字节){
//“images/island.jpg”的数据是返回的,根据需要使用它
}
}).addOnFailureListener(新的OnFailureListener(){
@凌驾
public void onFailure(@NonNull异常){
//处理任何错误
}
});
我通过在代码中超过大小解决了上述问题。第一个大小是1mb,后来我将其增加到5mb
final long ONE_MEGABYTE = 1024 * 1024;
将此更改为更大的尺寸,如
final long ONE_MEGABYTE = 1024 * 1024 *5;
我认为最好的解决办法是使用另一种下载方法。因为它必须将文件的全部内容加载到内存中。如果您请求的文件大于应用程序的可用内存,则应用程序将崩溃 您应该通过URL使用下载数据:
storageRef.child("users/me/profile.png").
getDownloadUrl().addOnSuccessListener(new OnSuccessListener<Uri>() {
@Override
public void onSuccess(Uri uri) {
// Got the download URL for 'users/me/profile.png'
}
}).addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception exception) {
// Handle any errors
}
});
请检查google play服务是否是最新的。如果不是,请更新它。如果是最新的,请清除google play services的缓存。“寻求调试帮助的问题('为什么此代码不起作用?')必须包括所需的行为、特定的问题或错误以及在问题本身中重现该问题所需的最短代码。没有明确问题说明的问题对其他读者没有用处。请参阅:“我无法找出代码的确切部分,我知道它在firebase存储中,但是它对一些视频起作用,对一些视频抛出异常,后来我回答了我的问题谢谢。顺便说一句,谢谢@FrankvanPuffelen你在firebase相关问题上帮了我很多忙:)很高兴听到你找到了问题的原因!
storageRef.child("users/me/profile.png").
getDownloadUrl().addOnSuccessListener(new OnSuccessListener<Uri>() {
@Override
public void onSuccess(Uri uri) {
// Got the download URL for 'users/me/profile.png'
}
}).addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception exception) {
// Handle any errors
}
});
Glide.with(MainActivity.this)
.load(mFirebaseUser.getPhotoUrl())
.into(mYourImageView);`