Ошибка машинописного текста - ожидается 1 аргумент, но получено 0 - PullRequest
0 голосов
/ 08 июня 2018

Я получаю ошибку с моим машинописным кодом в Ionic / Angular.Вывод ошибки:

[22:55:09] машинопись: C: / xampp / htdocs / project x / anonymous-social / src / pages / chat / chat.ts, строка: 103Ожидается 1 аргумент, но получено 0.

L102: if (! This.isUserThreadEmpty) {

L103: let threadKey = this.database.list ('users /' + this.userData.uid + '/ threads /' + this.recipient) .push (). key;

L104: let receiveientData = {

Я не знаю точно, почему это происходит, яя бы предположил, что push() нужен аргумент, но все ответы на вопросы stackoverflow, которые я видел в Интернете относительно того, как получить key в базе данных, указывают на это решение, поэтому я не уверен, что происходит.

Фактический кодэто:

if(!this.isUserThreadEmpty) {
  let threadKey = this.database.list('users/'+this.userData.uid+'/threads/'+this.recipient).push().key;
  let recipientData = {
    recipient: this.recipient,
    threadId: threadKey,
    displayName: this.displayName,
  }

Есть идеи?Мне нужно передать key на recipientData ... Что я делаю не так?

1 Ответ

0 голосов
/ 08 июня 2018

Вы используете AngularFire2.Для метода push в AngularFire2 требуется аргумент.

Вопрос и документация, которые вы связали, относятся к обычному SDK Firebase JavaScript, где аргумент push является необязательным.

Лучшим вариантом будет сделать это с обычным JavaScript SDK, так как нет никакого преимущества в использовании обертки AngularFire2:

let threadKey = firebase.database().ref().push().key;

Из комментария Джейн: для использования Firebase JavaScript SDK вы будетенужно:

import * as firebase from 'firebase/app';

Обновление (2018-06-08) : я только что обнаружил, что есть также специальный метод AngularFireDatabase.createPushId(), который создает pushЯ БЫ.Так что я думаю, что в вашем случае это будет database.createPushId().

...