1

私はfirebaseを介してプッシュ通知を登録するにはGoogleのクラウド機能を使用しています。私のアプリでは、現在のユーザーが新しいフォロワーなどを取得するたびに通知参照を持っています。今の時点で、その参照全体の子が変更されたときに通知を電話に送信できます。クラウドファンクションとFirebaseから現在のユーザーのIDを取得

たとえば、単一の投稿が好きな場合は、通知を送信します。私がしなければならないことは、現在のユーザーが単一の人だけに通知を送信することです。これにより

functions.database.ref('/notification/{id}').onWrite(event => { 

:ここ

は私JavaScriptが

const functions = require('firebase-functions'); 
const admin = require('firebase-admin'); 
admin.initializeApp(functions.config().firebase); 
exports.sendPushNotification = functions.database.ref('/notification/{id}').onWrite(event => { 
const payload = { 
notification: { 
    title: 'New message arrived', 
    body: 'come check it', 
    badge: '1', 
    sound: 'default', 
} 
    }; 

    return admin.database().ref('fcmToken').once('value').then(allToken => { 
    if (allToken.val()) { 
     const token = Object.keys(allToken.val()); 
     return admin.messaging().sendToDevice(token, payload).then(response => { 

     }); 
    } 
    }); 

}); 

ファイルである私は、この行を交換したいと思います

functions.database.ref('/notification/{id}').(The current user ID).onWrite(event => { 

私は、現在のユーザーIDを取得するにはどうすればよいですか?スウィフト3.0の場合

答えて

2

をあなたは(JSONは、ソートのためのギブアウェイでそれを呼び出す)JavaScriptに非常に新しいように見えます。 Firebaseのクラウド機能はJavaScriptを学ぶ最良の方法ではありません。最初にFirebase documentation for Web developersを読んだり、Firebase codelab for Web developerとすることをお勧めします。これらは、多くの基本的なJavaScript、Web、Firebaseの相互作用をカバーしています。それらの後には、Cloud関数のコードも書く方がはるかに優れています。

あなたの質問に戻る:クラウド機能に「現在のユーザー」という概念はありません。 JavaScriptコードはサーバー上で実行され、すべてのユーザーはデータベースに書き込むことでコードをトリガーできます。

は、どのユーザーがこの機能を起動したのかを把握していますが、これもまたあなたが望むものではありません。通知をトリガーしたユーザーは、メッセージを受け取る必要があるユーザーではありません。代わりに、通知のターゲットのユーザーを読み取る必要があります。

これを実行する1つの方法は、関数をトリガしたデータベースパスから読み取ることです。あなたはこのように、データベース内のユーザーごとに通知を維持する場合:

exports.sendPushNotification = functions.database.ref('/user_notification/{uid}/{id}').onWrite(event => { 

そして、その関数のコードでは、取得のUID:

user_notifications 
    $uid 
    notification1: ... 
    notification2: ... 

次のようなクラウド機能をトリガすることができますユーザー:

var uid = event.params.uid; 
+1

あなたは野獣です!あなたに感謝する! – user8426652

+0

あなたは大歓迎です。私の答えが役に立つなら、その左側のupvoteボタンをクリックしてください。あなたの質問に答えた場合は、チェックマークをクリックしてそれを受け入れます。そうすれば、他の人はあなたが(十分に)助けられたことを知ることができます。 –

+1

@FrankvanPuffelen、あなたの元の答えでは、 "あなたはどのようなユーザーがその機能を引き起こしたのか把握することができます"と述べた、あなたはそれを行うヒントを提供できますか? – Tomas

1

から4.0

あなたがこれを行うことができます:

import Firebase 
import FirebaseAuth 


class YourClass { 

let user = Auth.auth().currentUser 
let userID = user.uid 

// user userID anywhere 

} 
+0

このスピーディーな言語またはJson言語です。私はjsでコーディングしています – user8426652

+0

これは迅速です!私は謝罪しました。あなたはSwift、Firebaseタグを持っていましたので、あなたは迅速に使いたいと思っていました。 –

関連する問題