我是NativeScript的新手。
我正在使用nativescript-plugin-firebase
下载用户的照片并将其保存到/data/user/0/{APP_ID}/files/telerik-logo-downloaded.png
。
Firebase Storage本机API示例:
var fs = require("tns-core-modules/file-system");
// let's first determine where we'll create the file using the 'file- system' module
var documents = fs.knownFolders.documents();
var logoPath = documents.path + "/telerik-logo-downloaded.png";
// this will create or overwrite a local file in the app's documents folder
var localLogoFile = documents.getFile("telerik-logo-downloaded.png");
// now download the file with either of the options below:
firebase.storage.downloadFile({
bucket: 'gs://n-plugin-test.appspot.com',
remoteFullPath: 'uploads/images/telerik-logo-uploaded.png',
localFile: fs.File.fromPath(logoPath),
localFullPath: logoPath
}).then(
function (uploadedFile) {
console.log("File downloaded to the requested location");
},
function (error) {
console.log("File download error: " + error);
}
);
发生更改时(例如,用户上传新照片),我将使用 Firebase Storage Native API 下载该照片并覆盖现有的照片。
var localLogoFile = documents.getFile("telerik-logo-downloaded.png");
上面的这段代码应该覆盖本地文件(如果已存在)。
结果是,新照片将显示在iOS上,但不会显示在Android上。对于Android,它仍然是旧照片。
有人可以帮忙吗?谢谢〜
答案 0 :(得分:0)
我想您的问题是加载imageSource的方式。
它应该已经覆盖了文件,请尝试
img.src = imageSource.fromFile(logoPath)
代替
img.src = logoPath
希望有帮助!干杯!
答案 1 :(得分:0)
使用Android图片时,如果再次使用相同的网址,则不会刷新。尝试将图像源设置为null
,然后再次将其设置回您的路径。