1

フロントエンド(角度4)とバックエンド(ファイアベース機能)の両方からfirebaseデータベースにデータを書き込むとき、firebaseによって生成されたプッシュキーがあります。このキーでは、キーが一意であるため、将来データにアクセスすることはできません。自分でキーを設定することができますか、キーを知らなくてもデータにアクセスできますか?ファイヤーベースデータベースにプッシュキーを設定するにはどうすればいいですか?

admin.database().ref('/messages').push({original: original}).then(function (snapshot) { 
res.redirect(303, snapshot.ref);}); 

私がプッシュされたすべてのデータは下のようになります。ここでは


this.db.list(`${this.basePath}/`).push(upload); 
がバックエンドからの私のコードです:ここでは


は、フロントエンドからの私のコードですパス/プッシュID /データ

simple image

私はpushIDを知らなくてもデータにアクセスすることはできません。
パス/自分のプッシュID /データが最善のケースです

ありがとうございました!

答えて

1

どのようなキーでも一意である必要があります。代わりにpush

admin.database().ref('/messages/'+ yourUniqueId).set({original: original}).then(function (snapshot) { 
res.redirect(303, snapshot.ref);}); 

yourUniqueIdのユニークな何かのように、ユーザーのauth uidemailすることができ、このように、独自のキーをsetすることができます。

0

あなたはすべてのメッセージをループにしたい場合:あなたは、特定のメッセージを検索したい場合は

var ref = firebase.database().ref("messages"); 
ref.once("value", function(snapshot) { 
    snapshot.forEach(function(message) { 
    console.log(message.key+": "+message.val().original); 
    }); 
}); 

、クエリを使用します。より多くの本のために

var ref = firebase.database().ref("messages"); 
var query = ref.orderByChild("original").equalTo("aaaa"); 
query.once("value", function(snapshot) { 
    snapshot.forEach(function(message) { 
    console.log(message.key+": "+message.val().original); 
    }); 
}); 

を、上Firebaseドキュメントを読みますreading lists of data,sorting and filtering dataとなり、Firebase codelabになります。

関連する問題