【问题标题】:How to know the random id given to a firebase data如何知道赋予 Firebase 数据的随机 ID
【发布时间】:2017-01-10 17:19:03
【问题描述】:

我的问题是我在保存数据时无法检索Firebase生成的随机密钥(我不得不使用那个随机密钥),例如

我尝试使用dataSnapshot.getKey(),但没有成功,任何帮助将不胜感激。提前致谢

【问题讨论】:

标签: android firebase firebase-realtime-database


【解决方案1】:

根据你的问题,你可以使用这个:

对于安卓:

FirebaseDatabase database = FirebaseDatabase.getInstance();
DatabaseReference myRef = database.getReference("posts");
String key =  myRef.push().getKey();           //this returns the unique key generated by firebase

myRef.child(key).child("author").setValue("gracehop");//this creates the reqs key-value pair
myRef.child(key).child("title").setValue("Announcing COBOL");//this creates the reqs key-value pair

对于网络开发人员:

var messageListRef = firebase.database().ref('posts');
var newMessageRef = messageListRef.push();
newMessageRef.set({
 'author': 'gracehop',
 'title': 'Announcing COBOL'
});

【讨论】:

  • 尊敬的先生,我可以知道如何使用“String key = myRef.push().getKey();”在 php 中? (我正在尝试使用 php 插入数据)
【解决方案2】:

你可以这样做

String key = ref.push().getKey();
ref.child(key).setValue(post);

希望这能回答你的问题:)

Firebase - Save Data on Android

【讨论】:

    【解决方案3】:

    如果您想检索随机密钥,那么您应该使用addChildEventValueListerner,因为它会一一为您提供 posts 节点的子节点。

     FirebaseDatabase firebaseDatabase = FirebaseDatabase.getInstance();
     DatabaseReference mref = firebaseDatabase.getReference();
     mref.child("posts").addChildEventListener(new ChildEventListener() {
            @Override
            public void onChildAdded(DataSnapshot dataSnapshot, String s) {
                  if (dataSnapshot.hasChildren()) {
                     String value = dataSnapshot.getValue(String.class);
                  }
    
            }
    
            @Override
            public void onChildChanged(DataSnapshot dataSnapshot, String s) {
    
            }
    
            @Override
            public void onChildRemoved(DataSnapshot dataSnapshot) {
    
            }
    
            @Override
            public void onChildMoved(DataSnapshot dataSnapshot, String s) {
            }
    
            @Override
            public void onCancelled(DatabaseError databaseError) {
    
            }
        });
    

    【讨论】:

      【解决方案4】:

      如果您知道任何字段的数据,假设您知道作者的姓名,那么您可以检索键/键(如果多个作者具有相同的姓名)。这里描述的很清楚:https://stackoverflow.com/a/38232280/5129997

      【讨论】:

        猜你喜欢
        • 2013-09-29
        • 1970-01-01
        • 2022-01-01
        • 2019-03-17
        • 2019-10-19
        • 2017-07-02
        • 1970-01-01
        • 2011-03-03
        • 1970-01-01
        相关资源
        最近更新 更多