本机脚本-文件系统覆盖功能无法在Android设备上运行

时间:2018-11-09 10:54:07

标签: javascript android filesystems nativescript firebase-storage

我是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,它仍然是旧照片。

有人可以帮忙吗?谢谢〜

2 个答案:

答案 0 :(得分:0)

我想您的问题是加载imageSource的方式。

它应该已经覆盖了文件,请尝试

img.src = imageSource.fromFile(logoPath)

代替

img.src = logoPath

希望有帮助!干杯!

答案 1 :(得分:0)

使用Android图片时,如果再次使用相同的网址,则不会刷新。尝试将图像源设置为null,然后再次将其设置回您的路径。