2012-05-07 1 views
8

を見つけていない私は、ユーザーがログインfacebookで認証があると私がしたいクライアント側流星がエラーでローカル接続の結果を使用して:失敗したインサート:404 - メソッド

Friends = new Meteor.Collection("Friends"); 
Meteor.subscribe("Friends"); 

上の流星コレクションを持っています

Template.Friends.all_friends = function(){ 
    return Friends.find(); 
} 

私が持っている:私はそのリストを取得する機能を持っている

FB.api("/me/friends? auth_token="+response.authResponse.accessToken, 
    function(response){ 
     for (i = 0; i<response.data.length;i++){ 
      Friends.insert(response.data[i]); 
    } 
); 

:彼らの友人のリストをつかみます画面上のすべての友達を表示したいテンプレート:表示された何

<template name="Friends"> 
    {{#each all_friends}} 
    <div id="{{id}}" class="friend"> 
     <img src="http://graph.facebook.com/{{id}}/picture" /> 
     {{name}} 
    </div> 
    {{/each}} 
</template> 

は、ページ上で起こってするには、すべての友達が第二、その後、分割画面上フラッシュをアップしないということですすぐに画面が点滅します空白に戻ります。だから、

JavaScriptコンソールにメッセージが私が持っている友人ごとに一度表示されます(はい、それは、求めに感謝ゼロ以上である)

insert failed: 404 -- Method not found 

!私は何を逃したのですか?誰でも?

答えて

27

クライアントとサーバーの両方でそのコレクション宣言が必要です。

// common code, do not put under /client or inside Meteor.is_client test 
Friends = new Meteor.Collection("Friends"); 
4

あなたが唯一のクライアント側のコレクションを使用すると、サーバーにそのデータを保存する必要がない場合は、にnullを渡すことで、「クライアント」フォルダ内または.isClient()関数の中であなたのコレクションを宣言することができますこのようなコンストラクタは

if(Meteor.isClient()){ 
// Some other code 
... 

onlyClientCollection = new Meteor.Collection(null); 

// Some other code 
... 
} 
+0

この問題は私に悩まされました。答えをありがとう – Pawan

関連する問題