Firebase Fire - Query.once failed: called with 1 argument. At least 2 expected

I am trying to populate an array with some data from Firebase using promises. Here is the DB structure:

- domain name(or something) |--highscore |--Foo: 50 |--Bar: 60 

Code:

 var arr=[]; highscoreRef.child('highscore').once('value').then(function(snapshot) { snapshot.forEach(function(data) { arr.push({playerName: data.key(), score: data.val()}); }); }, function(error) { console.error(error); }); 

I get Uncaught Error: Query.once failed: Was called with 1 argument. Expects at least 2. Uncaught Error: Query.once failed: Was called with 1 argument. Expects at least 2.

Does this mean that I need to add at least 2 properties to Foo and Bar? Ex. Foo = {playerName: name, rating: 50}

The current location of the database matches my needs.

+5
source share
2 answers

This error message appears when you try to use the Promisified API in a pre-made SDK.

Callbacks (suggested by other answers) will work on any version of the Firebase version 2.x SDK.

We introduced an alternative syntax using promises in the Firebase JavaScript SDK version 2.4. Example once().then() in this jsbin: http://jsbin.com/qiranu/edit?js,console

Are you using the Firebase JavaScript SDK version 2.4 or later (which is where the promises are)?

+8
source

Do not use then . After executing the callback function as the second parameter:

https://www.firebase.com/docs/web/api/query/once.html

 var arr=[]; highscoreRef.child('highscore').once('value', function(snapshot) { snapshot.forEach(function(data) { arr.push({playerName: data.key(), score: data.val()}); }); }, function(error) { console.error(error); }); 
0
source

Source: https://habr.com/ru/post/1243468/


All Articles