Firebase 位置的云Firestore规则

Firebase 位置的云Firestore规则,firebase,google-cloud-firestore,firebase-security,Firebase,Google Cloud Firestore,Firebase Security,我试图阻止firestore中的任何记录读取,这些记录不在用户当前位置1000米半径范围内,请使用 我试过几个案例: 统治 latlng.value(resource.data.location.latitude,resource.data.location.longitude)、distance(get(/databases/$(database)/documents/users/$(request.auth.uid)).data.location)您不能在安全规则中创建latlng对象。但

我试图阻止firestore中的任何记录读取,这些记录不在用户当前位置1000米半径范围内,请使用

我试过几个案例:

  • 统治

  • latlng.value(resource.data.location.latitude,resource.data.location.longitude)、distance(get(/databases/$(database)/documents/users/$(request.auth.uid)).data.location)您不能在安全规则中创建
    latlng
    对象。但是,如果您的文档中已经有一个地质点,您可以访问该字段,它将已经是一个
    LatLng
    对象

    在我看来,应该是这样的:

    resource.data.location.distance(
      get(/databases/$(database)/documents/users/$(request.auth.uid)).data.location
    ) <= 1000;
    
    resource.data.location.distance(
    获取(/databases/$(database)/documents/users/$(request.auth.uid)).data.location
    
    )我也试过了,它给我错误
    函数未找到错误:Name:[距离]。
    latlng.value(resource.data.location.getLatitude(), resource.data.location.getLongitude()).distance(get(/databases/$(database)/documents/users/$(request.auth.uid)).data.location) <= 1000;
    
    latlng.value(resource.data.location.latitude(), resource.data.location.longitude()).distance(get(/databases/$(database)/documents/users/$(request.auth.uid)).data.location) <= 1000;
    
    resource.data.location.distance(
      get(/databases/$(database)/documents/users/$(request.auth.uid)).data.location
    ) <= 1000;