CollectionReference.doc()要求其第一个参数的类型为非空字符串

时间:2019-08-15 00:11:13

标签: typescript firebase google-cloud-firestore

我有一个离子应用程序试图更新Firebase中的记录。我不断收到此错误。不知道我在做什么错。

  

错误:未捕获(承诺):FirebaseError:[code = invalid-argument]:函数CollectionReference.doc()要求其第一个参数的类型为非空字符串,但它是:自定义Object对象      

FirebaseError:函数CollectionReference.doc()要求其第一个参数为非空字符串类型,但这是:自定义Object对象

这是我的更新功能。

updateTodo(todo: Todo, id: string) {

    return this.todosCollection.doc(id).update(todo)
}

5 个答案:

答案 0 :(得分:1)

就我而言,我在.doc函数中传递了一个数字类型变量,但它需要一个字符串。验证您的“ id”变量是否具有值,并且该值不是未定义的,null或为空的字符串。

答案 1 :(得分:0)

当您尝试将空对象发送到Firebase时会发生这种情况。 在异步调用完成之前重设表单值时出现此错误。

答案 2 :(得分:0)

问题出在您要传递doc的id上,它应该是一个字符串..尝试记录其值只是为了检查您到底传递了什么

答案 3 :(得分:0)

转到调用该函数的地方updateTodo使用uid而不是id。

答案 4 :(得分:0)

我遇到了这个问题,并通过输入.doc(cred.user。 uid )而不是.doc(cred.user。 id )解决了该问题。