GithubHelp home page GithubHelp logo

Comments (8)

katowulf avatar katowulf commented on August 22, 2024

Submitted via internal ticketing system. I will attempt to get a repro.

from angularfire.

lifeisfoo avatar lifeisfoo commented on August 22, 2024

Same to me (from today).

[Edit]
It's my report :)

2013/6/28 katowulf [email protected]

Hi,
I'm reporting unexpected behavior from my application using [redacted]

My "broadcast" messages are pushed correctly, and received by everybody
listening on them. But when a new connected client try to get latest
inserted messages, they aren't received.

I'm using the same code since the end of april and worked

I've debugged my application and found the cause of the problem (I'm using

angularFire):

var fbMessages = fb.child('broadcast');
$scope.messages = angularFireCollection(fbMessages.limit(50));

If I remove the call to the limit function all works fine...

I hope this can help you.


Reply to this email directly or view it on GitHubhttps://github.com//issues/44
.

from angularfire.

lifeisfoo avatar lifeisfoo commented on August 22, 2024

Here is a simplified version of my controller. Original code contains other .child() call to the main fb reference and other angularFireCollection variables.
It worked until today. From this morning it stopped working. As I said before, messages pushed after the application startup are received correctly.

        var fb = new Firebase(Meta.url);
        fb.auth(Meta.token, function(error, result) {
          if(error) {
            console.log("Login Failed!", error);
          } else {
            console.log('Auth ok.');
          }
        });
        var fbMessages = fb.child('broadcast');

        $scope.messages = angularFireCollection(fbMessages.limit(50));

        $scope.addMessage = function() {
              $scope.messages.add({text:$scope.messageText, sender:Meta.username, time: new Date().getTime()});
        };

from angularfire.

lifeisfoo avatar lifeisfoo commented on August 22, 2024

Seems to be a data related issue: I have tested against another firebase url and all works correctly.
The firebase that cause this problem is grow a lot in the latest 24 hours.

After the first collection constructor I have another collection:

var fbMessages = fb.child('users');
$scope.users = angularFireCollection(fbUsers);

"users" is the resource that is grow a lot: hundreds of entry with child. I tried to delete all broadcast messages but nothing has changes. Obviously I can't delete users resource.

from angularfire.

katowulf avatar katowulf commented on August 22, 2024

@lifeisfoo Do you have any security rules set up on this data? I think that the problem here may be a timing issue in the way you are doing your auth call.

This morning we released some optimizations to the limit() function. So it's much faster now, which is probably why this timing issue never happened before.

Can you try changing your controller code like this, and seeing if it helps?

         var fb = new Firebase(Meta.url);
        fb.auth(Meta.token, function(error, result) {
          if(error) {
            console.log("Login Failed!", error);
          } else {
            console.log('Auth ok.');
             var fbMessages = fb.child('broadcast');

             $scope.messages = angularFireCollection(fbMessages.limit(50));

             $scope.addMessage = function() {
                  $scope.messages.add({text:$scope.messageText, sender:Meta.username, time: new Date().getTime()});
             };
          }
        });

from angularfire.

katowulf avatar katowulf commented on August 22, 2024

Scratch that, I just talked this over with Michael Lehenbauer at Firebase and I was incorrect. I don't think that you need to wait for the .auth() call to invoke the callback. Sorry about that.

from angularfire.

lifeisfoo avatar lifeisfoo commented on August 22, 2024

On the "broadcast" resource I have only a simple rule:

"broadcast": {
      ".read": "auth != null",
      "$key": {    
        ".write": "!data.exists() && auth != null"
      }
    },

It's the "users" rule that is very big (over 100 lines) with 17 subresources.

from angularfire.

katowulf avatar katowulf commented on August 22, 2024

This turned out to be a Firebase related issue and unrelated to angularFire. Closing this ticket. Will track internally.

from angularfire.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.