2017-01-28 10 views
0

ヒューズでFirebaseリアルタイムデータベースを使用しています。フェッチを使用して、データベースに新しい項目を取得しPOSTすることができます。ヒューズツールでFirebase固有のキーを保存

私が持っている問題は、各エントリの一意のIDにアクセスまたは格納しようとしています。特定のエントリを編集できるように、データベースのURLを追加するには固有のIDが必要です。これを行う方法に関するアドバイスやリソースがあれば幸いです!データ

データベース構造

{ 
    "-KbRJK2tHQSfvoHD400o" :{ 
     "description": "A description ", 
     "title":"A name" 
    }, 
    "-KbRJQi7ntTTTGBSZSVX" :{ 
     "description":"Another description", 
     "title":"Another name" 
    } 
} 

取得

var Observable = require("FuseJS/Observable"); 
var Timer = require('FuseJS/Timer'); 

var activities = Observable(); 
var errorMessage = Observable(); 

var timer = Timer.create(function() { 
    load(); 
}, 100, true); 


function load() { 
    fetch('https://[myDatabase].firebaseio.com/.json?auth=[mySecret]', { 
      method: 'GET', 
      cache: 'default', 
      headers: { 
       "Content-type": "application/json" 
      } 
     }) 
     .then(function(result) { 
      if (result.status !== 200) { 
       console.log("Something went wrong :("); 
       return; 
      } 
      return result.json(); 
     }) 

     .then(function(data) { 
      var keys = Object.keys(data); 
       keys.forEach(function(key, index) { 
        if (index >= activities.length) { 
        var value = data[key]; 
        activities.add(value); 
        } 
       }) 
       }); 
}; 

module.exports = { 
    activities: activities, 
    errorMessage: errorMessage 
}; 

ポスティングデータ

var Observable = require("FuseJS/Observable"); 

var title = Observable(); 
var description = Observable(); 

function submit() { 
    fetch('https://[myDatabase].firebaseio.com/.json?auth=[mySecret]', { 
     method: 'POST', 
     headers: { 
      "Content-type": "application/json" 
     }, 
     body: JSON.stringify({ 
      "title": title.value, 
      "description": description.value 
     }), 
    }); 
} 

module.exports = { 
    title: title, 
    description: description, 
    submit: submit 
} 
を:ここで私は、現時点では持っているものです210

ありがとう!

答えて

0

投稿を数回読んだら、を保存した直後にデータベースエントリの一意のキーを取得する方法を探しているようです。

この場合、正確に行う方法は、FuseのFirebaseの実装に依存します。 Firebase docsを見ると、新しいエントリをデータベースにプッシュすると、そのIDが返されるように見えます。そうであれば、.then()ハンドラをPOSTリクエストにチェーンし、Firebaseからどのような応答が得られるかを確認する必要があります。

また、既にエントリのリストを取得し、Object.keysを反復する方法を知っているので、新しいエントリを保存した後でそのリストを更新することができます。これは確かに不要なオーバーヘッドになるので、解決策ではなく一時的な回避策としてしか見ません。

関連する問題