Java 如何从Firebase获得价值

Java 如何从Firebase获得价值,java,android,firebase,firebase-realtime-database,Java,Android,Firebase,Firebase Realtime Database,我是android新手,我想从Firebase数据库中获取用户ID,我尝试过使用它,但它返回null 通过使用此代码 常量的值。ARG\u聊天组\u聊天室=组和常量。新建节点=新建组 数据库结构是这样的吗 如我所见,它不是数组,而是字符串。要获取用户ID,请使用以下代码: DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference(); DatabaseReference yourRef = roo

我是android新手,我想从Firebase数据库中获取
用户ID
,我尝试过使用它,但它返回
null

  • 通过使用此代码
  • 常量的值。ARG\u聊天组\u聊天室
    =
    常量。新建节点
    =
    新建组


  • 数据库结构是这样的吗


如我所见,它不是数组,而是字符串。要获取
用户ID
,请使用以下代码:

DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference yourRef = rootRef.child(Constants.ARG_CHAT_GROUP_ROOMS).child(senderUid).child(Constants.NEW_NODE);
ValueEventListener eventListener = new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        String usersIDS = dataSnapshot.child("usersIDS").getValue(String.class);
        Log.d("TAG", usersIDS);
        //Here you can split the usersIDS String by , (comma)
    }

    @Override
    public void onCancelled(DatabaseError databaseError) {}
};
yourRef.addListenerForSingleValueEvent(eventListener);

其中,
senderUid
是缺少的子项。此子级可以具有类似于
1505217176288\u myGroupName\u 1
的值或其他共同响应的组名

如我所见,它不是数组,而是字符串。要获取
用户ID
,请使用以下代码:

DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference yourRef = rootRef.child(Constants.ARG_CHAT_GROUP_ROOMS).child(senderUid).child(Constants.NEW_NODE);
ValueEventListener eventListener = new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        String usersIDS = dataSnapshot.child("usersIDS").getValue(String.class);
        Log.d("TAG", usersIDS);
        //Here you can split the usersIDS String by , (comma)
    }

    @Override
    public void onCancelled(DatabaseError databaseError) {}
};
yourRef.addListenerForSingleValueEvent(eventListener);

其中,
senderUid
是缺少的子项。此子级可以具有类似于
1505217176288\u myGroupName\u 1
的值或其他共同响应的组名

如果你想在15052169227329_myGroupName_Hell By Anne下找到第一个:你的问题是你忘记了“Constants.NEW_node”之前的节点


如果你想要15052169227329_myGroupName_Hell By Anne下的第一个:你的问题是你忘记了“Constants.NEW_node”之前的节点



常量、ARG\u聊天室组和
常量、新节点和
常量的值是多少?
常量、ARG\u聊天室组和
组和
常量的值是多少。新节点和
新组需要
来自
1505217176288\u myGroupName\u 1
,正确吗?不显示其
用户ID
,它位于
组和
新组之间的
数组中
还有一个子节点丢失。常量
的值是多少。ARG\u CHAT\u GROUP\u ROOMS
常量。新节点
常量。ARG\u CHAT\u GROUP\u ROOMS
=
组和
Constants.NEW\u节点
=
newGroup
,因此您需要
from\u uid
from
1505217176288\u myGroupName\u 1
,正确吗?不显示它的
userid
,它位于
组之间的
数组中
新组之间
还有一个子节点丢失。@Laret它不是一个静态值
15052169227329\u myGroupName\u Hell By Anne
它的时间戳与myGroupName的组合(是静态的)_输入的值user@VishalYadav我刚刚用第一个示例演示了代码中缺少的内容,即一个节点。当您只想获取1个newgroup对象的userid时就是这种情况know@VishalYadav对不起,我听不懂你的话。您是否将第二个节点(15052169227329_myGroupName_Hell,由Anne或其他类似的人编写)存储在某个位置?如果要访问此节点下的特定元素,则需要将其存储在某个位置,以便使用.child(节点名称)。您可以始终使用
Test.child(Constants.ARG\u CHAT\u GROUP\u ROOMS)
,然后使用
dataSnapshot.getChildren().iterator().next()对其进行迭代但这不是您的解决方案problem@Laret它不是一个静态值
15052169227329\u myGroupName\u Hell By Anne
其时间戳的组合\u myGroupName(是静态的)\u由user@VishalYadav我刚刚用第一个示例演示了代码中缺少的内容,即一个节点。当您只想获取1个newgroup对象的userid时就是这种情况know@VishalYadav对不起,我听不懂你的话。您是否将第二个节点(15052169227329_myGroupName_Hell,由Anne或其他类似的人编写)存储在某个位置?如果要访问此节点下的特定元素,则需要将其存储在某个位置,以便使用.child(节点名称)。您可以始终使用
Test.child(Constants.ARG\u CHAT\u GROUP\u ROOMS)
,然后使用
dataSnapshot.getChildren().iterator().next()对其进行迭代但这不是您问题的解决方案谢谢您的回答,但它仍然给了我
null
value not work
senderUid
的值是多少?
tKyhXXAf6TQnQgKyAf23RJcwhsn1
,我想执行操作,如果该值存在于任何组中,则该消息将由组的用户接收,这就是为什么为空,因为我认为senderUid是1505217176288_myGroupName_1。保存此连接字符串的变量的名称是什么?
1505217176288\u myGroupName\u 1
1505217176288\u myGroupName\u 1
其时间戳\u myGroupName的组合(是静态的)_此值由用户输入谢谢您的回答,但它仍然给我
null
value not work
senderUid
的值是多少?
tKyhXXAf6TQnQgKyAf23RJcwhsn1
它是,我想执行操作,如果该值存在于任何组中,则该消息将由组的用户接收,这就是为什么为空,因为我认为senderUid是1505217176288_myGroupName_1。保存此连接字符串的变量的名称是什么?
1505217176288\u myGroupName\u 1
1505217176288\u myGroupName\u 1
其时间戳的组合\u myGroupName(是静态的)\u此值由用户输入
private void getMYuid() {
        String senderUid = FirebaseAuth.getInstance().getCurrentUser().getUid();
        DatabaseReference mTest = FirebaseDatabase.getInstance().getReference();
        mTest.child(Constants.ARG_CHAT_GROUP_ROOMS).child("15052169227329_myGroupName_Hell By Anne").child(Constants.NEW_NODE)
                .addListenerForSingleValueEvent(new ValueEventListener() {
            @Override
            public void onDataChange(DataSnapshot dataSnapshot) {
                if (!dataSnapshot.exists()){
                    Toast.makeText(ActivityChatView.this, "not exist", Toast.LENGTH_SHORT).show();
                    Log.e("151","ACV"+dataSnapshot);
                }

                // You can cast this object later but it seems that that is a string and not an array
                Object yourRequiredObject = dataSnapshot.child("usersIDS").getValue();
            }

            @Override
            public void onCancelled(DatabaseError databaseError) {

            }
        });
        Log.e("139","ACV"+senderUid);
    }