在我的新的android firebase项目中,我使用了com.google.firebase:firebase-storage:16.0.1库.
我收到以下错误:
我打开了一个项目,有库firebase-storage:15.0.2和taskSnapshot.getDownloadUrl();其合作上项目.但在使用最新的依赖库后,它无法正常工作.
现在,我该如何获取文件URL?
有没有办法获得文件下载链接?
提前致谢!
即使您处于脱机状态,Firebase也可以选择使用他们的数据库并将数据发送到他们的数据库,然后当连接再次启动时,它会自动将数据发送到数据库.
即使互联网关闭,也可以使用Firebase存储,例如发送图像,然后当互联网再次启动时,它会自动发送图像文件吗?
如果是这样,我该怎么办?如果没有使用Firebase,还有其他选择吗?
我尝试通过网址(带ref().put(file))(www.example.com/img.jpg)将图片上传到Firebase存储空间.
要做到这一点,我需要一个文件或Blob,但每当我尝试new File(url)它时说"没有足够的论点"......
编辑:我实际上想上传整个文件目录,这就是为什么我无法通过控制台上传它们
在gradle更新之前一切正常,但稍后会弹出这个错误.我已经提到了官方文档,它提供了相同的代码. 不接受getDownloadUrl()方法
我添加了最新的正确依赖项,并且gradle sync成功. 应用程序/的build.gradle
这是firebase文档中提供的示例代码,与我的相同. Firebase助手
即使所有必需的东西都存在,我也无法理解可能出现的问题.坚持这2天,请帮忙!
我正在使用Firebase在Android上下载文件.这是我的代码:
try {
//.. Try to download file from Firebase
} catch(StorageException e) {
if(e.getErrorCode() == StorageException.ERROR_RETRY_LIMIT_EXCEEDED) {
//Ignore! Exception has occurred due to no Internet availability
} else {
//Other genuine failure, log it
Crashlytics.logException(e);
}
}
Run Code Online (Sandbox Code Playgroud)
现在,此代码不会发送"已超出操作重试限制".例外.但是,在Crashlytics中,我仍然可以看到报告此异常.
Non-fatal Exception: com.google.firebase.storage.StorageException
The operation retry limit has been exceeded.
Caused by javax.net.ssl.SSLException
Read error: ssl=0x7188e1fe08: I/O error during system call, Software caused connection abort
Run Code Online (Sandbox Code Playgroud)
这怎么可能?我错过了什么吗?
Firebase版本:16.0.1
当我运行时firebase emulators:start出现此错误
错误:如果没有在 firebase.json 中指定规则文件,则无法启动存储模拟器
在安装存储模拟器之前,我可以像这样设置 Firestore 规则
{
"firestore": {
"rules": "./functions/firestore.rules"
},
"functions": {
"predeploy": [
"npm --prefix \"$RESOURCE_DIR\" run lint",
"npm --prefix \"$RESOURCE_DIR\" run build"
]
},
"emulators": {
"auth": {
"port": 9099
},
"functions": {
"port": 5001
},
"firestore": {
"port": 8080
},
"storage": {
"port": 9199
},
"ui": {
"enabled": true
}
}
}
Run Code Online (Sandbox Code Playgroud)
我想我必须在这里制定存储规则。但我不知道怎么办。我找不到这方面的文档
firebase firebase-tools firebase-storage firebase-admin firebase-cli
我试图添加一个进度条来上传firebase上的文件.但不幸的是,它并不表示上传进度.logcat和进度条都只显示文件何时达到100%
uploadTask.addOnProgressListener(new OnProgressListener<UploadTask.TaskSnapshot>() {
@Override
public void onProgress(UploadTask.TaskSnapshot taskSnapshot) {
double progress = 100.0 * (taskSnapshot.getBytesTransferred() / taskSnapshot.getTotalByteCount());
System.out.println("Upload is " + progress + "% done");
int currentprogress = (int) progress;
progressBar.setProgress(currentprogress);
}
}).addOnPausedListener(new OnPausedListener<UploadTask.TaskSnapshot>() {
@Override
public void onPaused(UploadTask.TaskSnapshot taskSnapshot) {
System.out.println("Upload is paused");
}
});
Run Code Online (Sandbox Code Playgroud) 现在我使用以下代码从Storage of Firebase获取图像:
mStoreRef.child("photos/" + model.getBase64Image())
.getDownloadUrl().addOnSuccessListener(new OnSuccessListener<Uri>() {
@Override
public void onSuccess(Uri uri) {
// Got the download URL for 'photos/profile.png'
}
}).addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception exception) {
// Handle any errors
Toast.makeTextthis, "image not dowloaded", Toast.LENGTH_SHORT).show();
}
});
Run Code Online (Sandbox Code Playgroud)
有可能获得图像中显示的URL .. ???
我正在开发基于Firebase数据库和存储的聊天应用程序.一切都运行正常,但现在我需要实施FCM,以便在应用程序处于后台或前台时接收应用程序通知.我找不到在PHP中实现的方法来监听firebase数据库中的任何更改,如果有任何更改,则将推送通知发送到应用程序.
有很多代码可以从PHP发送通知,但没有一个基于Firebase数据库,甚至官方文档都有我的共享主机不支持的Node.js指南.
我已经在我的应用程序端实现了FCM代码,该代码已经过Firebase控制台测试.
php firebase firebase-realtime-database firebase-cloud-messaging firebase-storage
目前我正在处理一个允许用户将文件上传到 Firebase 存储的页面。在 Android 上通过 Google Chrome 打开网站并从标准 HTML 文件输入中选择要上传的文件时,它使用 Android 的本机文件选择器。
在大多数情况下,用户会选择存储在设备本地的文件,但文件选择器还会显示他们的 Google 云端硬盘文件,并且当前不会阻止用户选择这些文件之一。该文件在 Javascript 中作为 File 对象返回,但是当尝试上传到 Firebase Storage 时,它会抛出错误:“net::ERR_UPLOAD_FILE_CHANGED”并最终超过它的重试限制。
为了防止用户混淆,我想阻止用户在 Android 的文件选择器中选择 Google Drive 文件,或者至少认识到它无法上传并警告用户。
我考虑过检查 input 元素返回的 File 对象,但没有任何迹象表明本地文件与 Google Drive 文件。
<input type="file" id="upload_input" class="hide"/>
Run Code Online (Sandbox Code Playgroud)
$("#upload_input").change(function(e) {
if (!e.target.files) {
return;
}
const file = e.target.files[0];
uploadFile(file);
});
uploadFile(file) {
...
const storageRef = firebase.storage().ref();
const fileRef = storageRef.child(`${userID}/uploads/${file.name}`);
const uploadTask = fileRef.put(file);
...
}
Run Code Online (Sandbox Code Playgroud) javascript google-chrome firebase google-drive-api firebase-storage
firebase-storage ×10
firebase ×9
android ×5
java ×3
javascript ×2
blob ×1
crashlytics ×1
file ×1
firebase-cli ×1
php ×1
url ×1