メッセージが送信者によって受信者に送信されるときにfirebaseがデータベースとして使用されます。Swift - Firebaseバックエンドでユーザーごとにメッセージをグループ化する方法
メッセージデータ送信者ID、受信者ID、送信されるSenderName、TimeStamp、およびtypeOfMediaが含まれます。私は効果的
メッセージが送信者によって受信者に送信されるときにfirebaseがデータベースとして使用されます。Swift - Firebaseバックエンドでユーザーごとにメッセージをグループ化する方法
メッセージデータ送信者ID、受信者ID、送信されるSenderName、TimeStamp、およびtypeOfMediaが含まれます。私は効果的
受信側にこのメッセージを送信する方法とグループメッセージをしたい
私はいくつかのメッセージングアプリに勤務し、いくつかの成功を収めてきました。これがFirebaseのデータ構造を実装した方法です。ユーザー間の直接のメッセージについて
、私はこのようなエントリがありますので、これはあなたのコードのために何を意味するの
direct-messages:
user-A-UID:
user-B-UID:
message-1-ID:
senderId: "user-A-UID",
senderName: "User A",
text: "hello, User B!",
timestamp: 1490570058,
status: "read"
message-2-ID:
senderId: "user-B-UID",
senderName: "User B",
text: "well hello, user A. How are you?",
timestamp: 1490570212,
status: "sent"
user-B-UID:
user-A-UID:
message-1-ID:
senderId: "user-A-UID",
senderName: "User A",
text: "hello, User B!",
timestamp: 1490570058,
status: "read"
message-2-ID:
senderId: "user-B-UID",
senderName: "User B",
text: "well hello, user A. How are you?",
timestamp: 1490570212,
status: "sent"
を?さて、ref.child("direct-messages").child(uid)
の.childAdded
リスナーをlet uid = FIRAuth.auth()?.currentUser?.uid
とすることができます。
メッセージングUIで、送信ボタンを押したときに、let messageId = ref.child("direct-messages").child(uid).childByAutoId()
のような操作を行います。これにより、メッセージごとに固有の識別子が与えられます。このように使用するref.child("direct-messages").child(uid).child(messageId).updateChildValues(newMessagePacket)
これで誰も書いておられないので、それに応じて権限を設定する必要もあります。 $uid == auth.uid
の場合にのみdirect-messages.$uid
に書き込むことができます。その詳細については、this pageをご覧ください。
しかし、ユーザーBが新しい子どものためにdirect-messages.user-B-UID
だけを聞いている場合、ユーザーAがメッセージを送信すると、どのように更新を取得できますか?(上記のアクセス許可に基づいて、direct-messages.user-A-UID.$messageID
にのみ書き込まれます)これを行う最善の方法は、小さなAmazon EC2インスタンス実行ノードを使用してfirebase-adminライブラリを使用して更新をリッスンし、データをdirect-messages.user-B-UID.$messageID
に複製することです。
これは、私が2つのプロダクションメッセージングアプリケーションで使用する技術です。私はFirebaseの鍵となるのは、データの重複とアクセス権です。これは私のためにはうまくいきましたが、それ以上の質問があれば教えてください。
何を試しましたか?何が効いていないのですか? [最小限で完全で検証可能なサンプルの作成方法](http://stackoverflow.com/help/mcve)を参照してください。 – Jay