我如何在firebase android中查询像云函数中的数据库触发器

2019年3月26日 22点热度 0条评论

在Firebase Cloud Functions(Javascript)中,我们使用如下所示的数据库触发器,

functions.database.ref('/DoctorApp/DrTimeSlot/{doctorUID}/Patients/{patientID}')
    .onCreate((snapshot, context) => { 

    // codes here
};

在这里,{doctorUID}是未知的,因此所有功能都适用于所有UID。

是否可以在Android Studio(Java)中使用相同的方法?下面的代码对我不起作用,您能为我提供替代代码吗?

Query query = rootData.child("DrTimeSlot/{drUID}/Patients/").orderByChild("patientUID").equalTo(auth.getUid());

query.addValueEventListener(new ValueEventListener() {
            @Override
            public void onDataChange(@NonNull DataSnapshot dataSnapshot) {

                //codes here
            }

            @Override
            public void onCancelled(@NonNull DatabaseError databaseError) {

            }
        });

解决方案如下:

在android中,您无法执行此查询child("DrTimeSlot/{drUID}/Patients/"),需要知道所有3个节点。

如果您不知道drUID,则在将其首先存储到数据库时,可以将其存储到变量中并将该变量传递给周围,例如:

String drUID = ref.push().getKey();

然后,您可以使用intent将上述变量传递给不同的活动。