首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Firebase移除图像链接值替换为空字符串

Firebase移除图像链接值替换为空字符串
EN

Stack Overflow用户
提问于 2018-02-16 05:10:14
回答 1查看 123关注 0票数 0

我正在尝试运行一个函数来将firebase列表项的值更改为空字符串。因此,我正在尝试从firebase中的图像值中删除新闻帖子的拇指图像url。

当我发布一个新闻项目时,它会像这样建模并保存到firebase中。

代码语言:javascript
复制
news: any = {
    title: '',
    shortDescription: "",
    description: "",
    createdAt: Date.now(),
    thumb: ""
  }

无论何时Ipost新闻项目,帖子的图片都会保存在firebase存储中,然后指向该图片的链接会保存在新闻项目的“拇指”中。

另一个链接被保存在一个名为' media‘的节点下,允许我在媒体库中查看添加了新闻帖子的所有图像。

当我浏览媒体库时,我可以删除图片,当我删除一张图片时,我搜索firebase新闻帖子,在thumb部分找到匹配的图像url,然后我想删除链接,并在“thumb”部分留下一个空字符串。

下面的updateNewsImageLink()函数中使用的变量:

代码语言:javascript
复制
  news: Array<any>;
  newsDataRef: AngularFireList<any>;
  newsObservable: Observable<any>;
  list: any

this.imagePath是firebase存储中镜像的url。

代码语言:javascript
复制
    updateNewsImageLink() {
    this.newsDataRef = this.af.list('/news', ref => ref.orderByChild('thumb').equalTo(this.imagePath))
    this.newsObservable = this.newsDataRef.snapshotChanges().map(changes => {
      return changes.map(c => ({ key: c.payload.key, ...c.payload.val() }));
    });
    this.newsObservable.subscribe((res) => {
      this.news = res[0];
      this.list = res;
      this.list.update(this.news, { thumb: ' ' });
    });
  }

我在运行前一个函数之前调用了这个函数,该函数将图像本身从firebase存储中删除,因此一旦图像本身被删除,我就想在firebase数据库中将新闻'thumb‘值保留为空字符串。

EN

回答 1

Stack Overflow用户

发布于 2018-02-17 03:36:02

所以我设法自己解决了这个问题。我要做的是,从我想要删除的图片的新闻帖子中获取密钥,然后使用它来运行函数,将thumb更新为空字符串。

因此,我在构造函数中添加了以下内容:

代码语言:javascript
复制
this.newsDataRef = this.af.list('/news', ref => ref.orderByChild('thumb').equalTo(this.imagePath))
          this.newsDataRef.snapshotChanges(['child_added'])
            .subscribe(actions => {
              actions.forEach(action => {
                this.newskey = action.key;
              });
            });

这使我能够获取新闻帖子的关键字并将其分配给: this.newskey。

我添加了新闻键:构造器上的任何变量。

现在,当我运行下面的函数时,我只是使用新闻键作为参考点来更新节点。

代码语言:javascript
复制
updateNewsImageLink() {
    this.newsDataRef.update(this.newskey, { thumb: '' });
  }

现在,在管理媒体库中的图像时,我可以从firebase存储中删除图像,从数据库中的媒体库节点中删除图像,现在还可以从数据库中的新闻帖子缩略图中删除图像。

我希望这能以任何方式帮助到某人。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48816333

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档