【问题标题】:Error on Firebase StorageFirebase 存储错误
【发布时间】:2017-08-24 19:57:37
【问题描述】:

当我在 Angular 和 Firebase 中尝试这个删除功能时

/item.component.ts

import { Component, OnInit } from '@angular/core';
import { FirebaseService } from '../../services/firebase.service';
import { Router} from '@angular/router';
import * as firebase from 'firebase';

@Component({
  selector: 'app-item',
  templateUrl: './item.component.html',
  styleUrls: ['./item.component.css']
})

export class ItemComponent implements OnInit {
  id:any;       

  constructor(
    private firebaseService: FirebaseService,
    private router: Router      
  ) { }

  ngOnInit() {

  }

  onDeleteClick(){
    this.firebaseService.deleteItem(this.id);

    this.router.navigate(['Items']);
   }
 }

在 Firebase 服务上

/firebase.service.ts

deleteItem(id){
 return this.items.remove(id);
}

控制台返回此错误

Firebase Storage: Invalid argument in `child` at index 0: Expected string

该记录已从 Firebase 中删除,但它总是向我显示该错误。 有什么想法吗?

谢谢

【问题讨论】:

  • 请提供包含服务的minimal reproducible example
  • 不熟悉firebase,但我猜this.idthis.firebaseService.deleteItem(this.id) 中的一个数字,而firebase 期望return this.items.remove(id) 中有一个字符串。或者至少是代码中某处的某种类型的不匹配。

标签: javascript angular firebase firebase-storage


【解决方案1】:

来自 Firebase API: https://firebase.google.com/docs/reference/js/firebase.database.Reference#child

所以child 方法只能得到一个String 这是一个:

从该位置到所需子位置的相对路径。

它会返回对孩子在 Firebase 存储中的位置的引用。您收到的控制台错误意味着传递给child 的参数不是String

在您的情况下,如果 id 是像 Alex 在 cmets 中指出的数字,则可能会导致该错误。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-09-21
    • 1970-01-01
    • 2019-02-27
    • 2021-10-16
    • 2017-10-09
    • 2021-12-20
    相关资源
    最近更新 更多